Cod sursa(job #343687)

Utilizator miculprogramatorA Cosmina - vechi miculprogramator Data 26 august 2009 21:01:14
Problema Curcubeu Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>
using namespace std;

#define LIM 1000005

int N,A[LIM],B[LIM],C[LIM],i,j,nr[LIM],aux[LIM],x,p;
int main()
{
	ifstream f("curcubeu.in");
	ofstream g("curcubeu.out");
	f>>N>>A[1]>>B[1]>>C[1];
	f.close();
	for (i=2;i<N;++i)
		{
		A[i]=( (long long) A[i-1]*i)%N;
		B[i]=( (long long) B[i-1]*i)%N;
		C[i]=( (long long) C[i-1]*i)%N;
		if (A[i]>B[i])
			{
			x=A[i];
			A[i]=B[i];
			B[i]=x;
			}
		}
	for(i=1;i<N;++i)
		{
		aux[i]=i+1;
		if(A[i]>B[i])
			{
			A[i]^=B[i];
			B[i]^=A[i];
			A[i]^=B[i];
			}
		}
	for (i=N-1;i;--i)
		{
		p=A[i];
		while (p<=B[i])
			{
			if (nr[p]==0) nr[p]=C[i];
			x=aux[p];
			aux[p]=B[i]+1;
			p=x;
			}
		}
	for (i=1;i<N;++i)
		g<<nr[i]<<endl;
	g.close();
	return 0;
}