C - Modulo Summation / ABC103
解法
まず任意のについて、であることから、の上限はであることはすぐに分かります。そして、サンプルなどを見ているとmを上手くとればをこの上限に一致させることが出来るのではないかと予想が立てられます。
実際この予想は正しくて、とすると、任意のに対してとなることが分かり、このときとなり上限に一致させることが出来ます。
感想
予想を立てるところまではすぐにいったのですが、それを証明するのに意外と時間がかかってしまいました。分かってしまえば簡単なのですが、が互いに素でないときは成り立たなかったりするのではないかと考えたり、最近知った中国剰余定理かなとか考えてしまいました。modの世界では-1が最大になるというのは面白いですね。
実装
今回はJavaです。最近Javaの練習をしています。競プロにはやや使いづらいような印象ですが、uwiさんなどは普通に使いこなしているので凄いなと思いました。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int ans = 0; for (int i = 0; i < n; i++) { int a = sc.nextInt(); ans += a - 1; } System.out.println(ans); } }