Cod sursa(job #1290705)

Utilizator cojocarugabiReality cojocarugabi Data 11 decembrie 2014 18:17:37
Problema Curcubeu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
# include <bits/stdc++.h>
# define x first
# define y second
using namespace std;
const int nmax = 1e6 + 5;
int a[nmax];
int b[nmax];
int c[nmax];
int s[nmax];
int v[nmax];
int main(void)
{
    int n;
    fscanf(fopen("curcubeu.in","r"),"%d%d%d%d\n",&n,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=n-1;i;--i)
    {
        int p=min(a[i],b[i]);
        int u=max(a[i],b[i]);
        for (int j=p;j<=u;++j)
        {
            while (v[j] && v[j] <= u) j = v[j];
            s[j]=c[i];
            v[j]=u+1;
        }
    }
    freopen("curcubeu.out","w",stdout);
    for (int i=1;i<n;++i) printf("%d\n",s[i]);
    return 0;
}