Cod sursa(job #658667)

Utilizator maritimCristian Lambru maritim Data 9 ianuarie 2012 11:59:29
Problema Curcubeu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<stdio.h>
#include<fstream>
using namespace std;

ifstream f("curcubeu.in");
FILE *g = fopen("curcubeu.out","w");

#define MaxN 1000100

int N,A[MaxN],B[MaxN],C[MaxN],MIN,MAX,D[MaxN],cul[MaxN];

int main()
{
	f >> N >> A[1] >> B[1] >> C[1];
	
	for(int 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;
		
		if(A[i] > B[i]) { int aux = A[i]; A[i] = B[i] ; B[i] = aux; }
	}
	
	for(int i=N-1;i;i--)
	{
		for(int j=A[i];j<=B[i];)
			if(!cul[j])
			{
				cul[j] = C[i];
				D[j] = B[i]+1;
				j ++;
			}
			else
				j = D[j];
	}
	
	for(int i=1;i<N;i++)
		fprintf(g,"%d\n",cul[i]);
	
	return 0;	
}