Cod sursa(job #2007983)

Utilizator stefii_predaStefania Preda stefii_preda Data 4 august 2017 19:34:17
Problema Curcubeu Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <algorithm>

using namespace std;
ifstream in("curcubeu.in");
ofstream out("curcubeu.out");
const int N = 1000003;
int a[N], b[N], c[N], urm[N], col[N];

int main()
{

    int n, i, left, right;
    in >> n >> a[1] >> b[1] >> c[1];
    for(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(i = n-1; i >= 1; i--)
    {
        left = min(a[i], b[i]);
        right = max(a[i], b[i]);
        while(left <= right)
        {
            if(col[left] == 0)
            {
                col[left] = c[i];
                urm[left] = right+1;
                left++;
            }
            else
                left = urm[left];
        }
    }
    for(i = 1; i < n; i++)
        out<< col[i] <<"\n";
    return 0;
}