Cod sursa(job #2462662)

Utilizator OctavianVasileVasileOctavian OctavianVasile Data 27 septembrie 2019 18:30:26
Problema Curcubeu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 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;
        if (A [i] > B [i])
            swap (A [i], B [i]);
    }
    for (int i = N - 1; i >= 1; i --){
        for (int ind = A [i]; ind <= B [i];){
            if (nxt [ind] == 0){
                nxt [ind] = B [i] + 1;
                ans [ind] = C [i];
                ind ++;
            }
            else ind = nxt [ind];
        }
    }
    for (int i = 1; i < N; i ++)
        fout << ans [i] << '\n';
    return 0;
}