はまやんはまやんはまやん

hamayanhamayan's blog

整数占い (Uranai Integer) [Summer Festival Contest 2018 C]

https://beta.atcoder.jp/contests/summerfes2018-div2/tasks/summerfes2018_c

考察過程

1. とてもむずかしい問題に見える
2. なるべく難度を落として考えてみると、サンプルが怪しいことになっている
3. 答えと一例が等しくなっている
4. もしかして全部同じ結果になるのでは?
5. AC

解法

https://beta.atcoder.jp/contests/summerfes2018-div2/submissions/3070776

エスパーで通してしまった。
どのような順番で計算をしても結果が同じになるため、ある1通りをシミュレーションして答える。
mod系はよく事故るので、このような簡単なケースでも、mintを用意するのをおすすめする。

int N, A[1010101];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
    rep(i, 0, N) cin >> A[i];
 
    rep(i, 1, N) {
        mint a = A[i - 1];
        mint b = A[i];
 
        mint c = a * b + a * 2 + b * 2 + 2;
        A[i] = c.get();
    }
 
    cout << A[N - 1] << endl;
}