Cod sursa(job #897440)

Utilizator DanutsDanut Rusu Danuts Data 27 februarie 2013 20:37:53
Problema Curcubeu Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<cstdio>
#define maxn 1000000
#include<iostream>
using namespace std;
int a,b,c,n,i,j,nrv;
struct vec{int x,y,rez;}v[maxn];
int t[maxn];
void afis(){
    for(int i=1;i<n;i++)
        printf("%d\n",t[i]);
}

void solve(){
    for(int i=2;i<n;++i){
        a=(a%n*i%n)%n;
        b=(b%n*i%n)%n;
        c=(c%n*i%n)%n;
        v[i].x=min(a,b);
        v[i].y=max(a,b);
        v[i].rez=c;
        t[i]=-1;
    }
    for(int i=n-1;i>=1 && nrv!=n-1;--i)
        for(int j=v[i].x;j<=v[i].y;j++)
            if(t[j]==-1)
                t[j]=v[i].rez,nrv++;
}
 
int main(){
    freopen("curcubeu.in","r",stdin);
    freopen("curcubeu.out","w",stdout);
    scanf("%d %d %d %d",&n,&a,&b,&c);
    v[1].x=min(a,b);
    v[1].y=max(a,b);
    v[1].rez=c;t[1]=-1;
    solve();
    afis();
    return 0;
}