Cod sursa(job #2147720)

Utilizator Constantin.Dragancea Constantin Constantin. Data 28 februarie 2018 22:20:13
Problema Curcubeu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>
using namespace std;

long long col[1000010], nxt[1000010], n, a, b, c;

struct casa{
    int x, y, z;
} A[1000010];

int main(){
    ifstream cin ("curcubeu.in");
    ofstream cout ("curcubeu.out");
    cin >> n >> a >> b >> c;
    if (b < a) swap(a, b);
    A[1] = {a, b, c};
    for (int i=2; i<n; i++){
        a = (a * i)%n;
        b = (b * i)%n;
        c = (c * i)%n;
        if (b < a) swap(a, b);
        A[i] = {a, b, c};
    }
    for (int i=n-1; i; i--){
        int j = A[i].x;
        while (j <= A[i].y){
            if (!nxt[j]) col[j] = A[i].z, nxt[j++] = A[i].y;
            else j = nxt[j] + 1;
        }
    }
    for (int i=1; i<n; i++) cout << col[i] << "\n";
    return 0;
}