Cod sursa(job #1028858)

Utilizator Kira96Denis Mita Kira96 Data 14 noiembrie 2013 19:18:15
Problema Curcubeu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<fstream>
#include<cstdio>
#define NM 1000100
using namespace std;
ifstream f("curcubeu.in");
int N,n,a[NM],urm[NM],co,st,dr,col[NM],i,b[NM],c[NM];
bool viz[NM];
int main ()
{
	freopen("curcubeu.out","w",stdout);
	f>>n>>a[1]>>b[1]>>c[1];
	N=n;
	for(i=2;i<n;++i)
	{
		a[i]=(1LL*a[i-1]*i)%n;
		b[i]=(1LL*b[i-1]*i)%n;
		c[i]=(1LL*c[i-1]*i)%n;
	}
	for(i=1;i<=n;++i) urm[i]=i;
	for(n--;n>=1;--n)
	{
		st=min(a[n],b[n]);
		dr=a[n]+b[n]-st;
		co=c[n];
		for(i=st;i<=dr;++i)
			if(viz[i]) 
				i=urm[i]-1;
			else
			{
				col[i]=co;
				viz[i]=1;
				urm[i]=dr+1;
			}
	}
	for(i=1;i<N;++i)
		printf("%d\n",col[i]);
	return 0;
}