Cod sursa(job #896128)

Utilizator Claudiu95Vartolomei Alexandru Claudiu Claudiu95 Data 27 februarie 2013 13:56:29
Problema Curcubeu Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<cstdio>
#define maxn 1000000
#include<iostream>
using namespace std;
int nre,a,b,c,n,i,j,cul[maxn];
struct muchie{
	int x1,x2,c;
};
muchie v[maxn];
int check(){
	for(int i=1;i<n;++i)
		if(cul[i]==-1)
			return 0;
	return 1;
}
int main(){
    freopen("curcubeu.in","r",stdin);
    freopen("curcubeu.out","w",stdout);
    scanf("%d %d %d %d",&n,&a,&b,&c);
	nre=1;
	v[nre].x1=min(a,b);
	v[nre].x2=max(a,b);
	v[nre].c=c;
	cul[1]=-1;
	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;
		cul[i]=-1;
		++nre;
		v[nre].x1=min(a,b);
		v[nre].x2=max(a,b);
		v[nre].c=c;
	}
	while(!check()){
		for(int i=v[nre].x1;i<=v[nre].x2;++i)
			if(cul[i]==-1)
			cul[i]=v[nre].c;
		--nre;
	}
	for(int i=1;i<n;++i)
		printf("%d\n",cul[i]);
	
	return 0;
}