Cod sursa(job #1743304)

Utilizator cubaLuceafarul cuba Data 17 august 2016 22:26:53
Problema Curcubeu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("curcubeu.in");
ofstream g("curcubeu.out");
const int NMAX = 1000003;
int a[NMAX], b[NMAX], c[NMAX], Next[NMAX], Sol[NMAX];
int main()
{
    int n;
    f>> n;
    f>> 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 = 1; i <= n; i++) {
        if(a[i] > b[i])
            swap(a[i],b[i]);
        for(int j = a[i]; j <= b[i]; j++) {
            while(Next[j]) {
                j = Next[j];
            }
            if(j <= b[i]) {
                Next[j] = a[i] - 1;
                Sol[j] = c[i];
            }
            else
                break;
        }
    }
    for(int i = 1; i < n; i++) {
        g<< Sol[i] << "\n";
    }
    return 0;
}