頭良くなりたい人

文系大学生shadeのブログです。競技プログラミングや人文学の話題,受験ネタなど。

ABC139 D - ModSum

問題はこちら atcoder.jp

方針

直感で解きました。

以下の証明ミスってます。修正中です。

後付けで証明もしておきます。 求める和は,\sum_{k=1}^{N} P_{i}\ {\rm mod}\ i と表せます。ここで,ある整数を i で割った余りは 0,1,...i-1 (最大でも i-1 )なので, f:id:shadekyun:20200516222008p:plain です。 { P_1,P_2,P_3,...,P_N } = { N,1,2,...,N-1 } と並べ替えたとき,これを満たします。

コード

#include <bits/stdc++.h>
using namespace std;
 
int main(){
    long long n;
    cin>>n;
 
    cout<<n*(n-1)/2<<endl;
}