Cod sursa(job #490621)

Utilizator lianaliana tucar liana Data 6 octombrie 2010 22:31:35
Problema Curcubeu Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
using namespace std;
int n, i, inc, sf, j, jjan, jj;
int a[1000005], b[1000005], c[1000005], col[1000005], sar[1000005];
int main()
{
	ifstream fin("curcubeu.in");
	ofstream fout("curcubeu.out");
	fin>>n>>a[1]>>b[1]>>c[1];
	for (i=2; i<n; i++)
	{
		a[i]=(a[i-1]*i)%n;
		b[i]=(b[i-1]*i)%n;
		c[i]=(c[i-1]*i)%n;
	}
	for (i=n-1; i>=1; i--)
	{
		if (a[i]<b[i])
		{
			inc=a[i];
			sf=b[i];
		}
		else
		{
			inc=b[i];
			sf=a[i];
		}
		j=inc;
		while (j<=sf)
		{
			jj=j;
			while (col[j]>0)
				j=sar[j]+1;
			while (col[jj]>0)
			{
				jjan=jj;
				jj=sar[jj]+1;
				sar[jjan]=j-1;
				
			}
			if (j<=sf)
			{
				col[j]=c[i];
				sar[j]=sf;
			}
			j=j+1;
		}
	}
	for (i=1; i<n; i++)
			fout << col[i] << '\n';
	fin.close();
	fout.close();
}