Cod sursa(job #1248173)

Utilizator horatiu11Ilie Ovidiu Horatiu horatiu11 Data 24 octombrie 2014 19:11:52
Problema Curcubeu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
//horatiu11
# include <cstdio>
# include <algorithm>
# define nmax 1000001
using namespace std;
int n,a[nmax],b[nmax],c[nmax],color[nmax],next[nmax];
inline void update_color(int A, int B, int C)
{
    int i;
    for(i=A;i<=B;++i)
        if(next[i])i=next[i],--i;
        else
        {
            color[i]=C;
            next[i]=B+1;
        }
}
int main()
{
    int i,Min,Max;
    freopen("curcubeu.in","r",stdin);
    freopen("curcubeu.out","w",stdout);
    scanf("%d%d%d%d",&n,&a[1],&b[1],&c[1]);
    for(i=2;i<n;++i)
    {
        a[i]=(a[i-1]*i)%n;
        b[i]=(b[i-1]*i)%n;
        c[i]=(c[i-1]*i)%n;
    }
    for(i=n-1;i>0;--i)
    {
        Min=min(a[i],b[i]);
        Max=max(a[i],b[i]);
        update_color(Min,Max,c[i]);
    }
    for(i=1;i<n;++i)
        printf("%d\n",color[i]);
    return 0;
}