Cod sursa(job #1395079)

Utilizator campionulFlavius Stoican campionul Data 20 martie 2015 23:35:08
Problema Curcubeu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <cstdio>
#include <algorithm>
#define nmax 6000009
using namespace std;
int n,a,b,c;
int A[nmax],B[nmax],C[nmax];
int urm[nmax],cul[nmax];
int main(){
    int i,j,st,dr,g,s;
    freopen("curcubeu.in","r",stdin);
    freopen("curcubeu.out","w",stdout);
    scanf("%d%d%d%d",&n,&a,&b,&c);
    A[1]=min(a,b);B[1]=max(a,b);C[1]=c;
    for(i=2;i<n;i++){
        a=(a*i)%n;
        b=(b*i)%n;
        c=(c*i)%n;
        A[i]=min(a,b);B[i]=max(a,b);C[i]=c;
    }
    for(i=n-1;i>0;i--){
        st=A[i];
        dr=B[i];
        g=C[i];
        for(j=st;j<=dr&&j<n;j++){
            cul[j]=g;
            if(urm[j] < n)j+=urm[j];
        }
        urm[st]=dr-st;
    }
    for(i=1;i<n;i++)
        printf("%d\n",cul[i]);
    return 0;
}