Cod sursa(job #2462658)

Utilizator OctavianVasileVasileOctavian OctavianVasile Data 27 septembrie 2019 18:26:18
Problema Curcubeu Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <bits/stdc++.h>
#define NMAX 1000003
using namespace std;
ifstream fin ("curcubeu.in");
ofstream fout ("curcubeu.out");
int A [NMAX], B [NMAX], C [NMAX];
int N, nxt [NMAX], ans [NMAX];
int main (){
    fin >> N;
    fin >> A [1] >> B [1] >> C [1];
    for (int i = 2; i < N; i ++){
        A [i] = (1LL * A [i - 1] * i) % N;
        B [i] = (1LL * B [i - 1] * i) % N;
        C [i] = (1LL * C [i - 1] * i) % N;
    }
    for (int i = N - 1; i >= 1; i --){
        int st = min (A [i], B [i]);
        int dr = max (A [i], B [i]);
        while (st <= dr){
            if (nxt [st] == 0){
                nxt [st] = dr + 1;
                ans [st] = C [i];
                st ++;
            }
            else st = nxt [st];
        }
    }
    for (int i = 1; i < N; i ++)
        fout << ans [i] << '\n';
    return 0;
}