Cod sursa(job #1534146)

Utilizator eu3neuomManghiuc Teodor-Florin eu3neuom Data 23 noiembrie 2015 13:51:01
Problema Curcubeu Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");

const int NMax = 1e6 + 5;

int n;
int lo[NMax], hi[NMax], v[NMax];

inline void Solve(const int N, int a, int b, int c){
    if(N == n) return;
    a = (1LL * a * N) % n;
    b = (1LL * b * N) % n;
    c = (1LL * c * N) % n;
    Solve(N + 1, a, b, c);
    int m = min(a, b);
    int M = max(a, b);
    for(int i = min(a, b); i <= max(a, b); i++){
        if(v[i] != 0){
            m = lo[i];
            M = hi[i];
        } else {
            v[i] = c;
        }
        M = max(M, i);
    }
    hi[m] = M;
    lo[M] = m;
}

int main(){
    int a, b, c;
    fin >> n >> a >> b >> c;
    Solve(1, a, b, c);
    for(int i = 1; i < n; i++){
        fout << v[i] << "\n";
    }
    return 0;
}