Cod sursa(job #1148159)

Utilizator OnimushaLordTiberiu Copaciu OnimushaLord Data 20 martie 2014 15:41:35
Problema Curcubeu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
# include <cstdio>
# include <algorithm>
# define N 1000100
# define L (long long)

using namespace std;

int i,j,st,dr,n;
int a[N],b[N],c[N],sol[N],t[N];

int main()
{
    freopen("curcubeu.in", "r", stdin);
    freopen("curcubeu.out", "w", stdout);
    scanf("%d %d %d %d\n", &n,&a[1],&b[1],&c[1]);
    for(i=2; i<n; ++i)
    {
        a[i]=(L a[i-1]*i)%n;
        b[i]=(L b[i-1]*i)%n;
        c[i]=(L c[i-1]*i)%n;
    }
    for(i=n-1; i; --i)
    {
        st=min(a[i],b[i]);
        dr=max(a[i],b[i]);
        for(j=st; j<=dr;)
            if(!sol[j])
            {
                sol[j]=c[i];
                t[j]=dr+1;
                j++;
            }
            else j=t[j];
    }
    for(i=1; i<n; ++i)
        printf("%d\n", sol[i]);
}