Cod sursa(job #800457)

Utilizator marinMari n marin Data 21 octombrie 2012 17:47:23
Problema Curcubeu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <cstdio>

#define DIM 1000002

using namespace std;

int A[DIM], B[DIM], C[DIM], V[DIM], T[DIM];

int N, i, j, aux;

int main() {
	ifstream f("curcubeu.in");
	FILE *g = fopen("curcubeu.out","w");
	
	f>>N>>A[1]>>B[1]>>C[1];
	if (A[1] > B[1]) {
		aux = A[1];
		A[1] = B[1];
		B[1] = aux;
	}
	
	for (i=2;i<N;i++) {
		A[i] = (A[i-1] * 1LL * i) % N;
		B[i] = (B[i-1] * 1LL * i) % N;
		C[i] = (C[i-1] * 1LL * i) % N;
		if (A[i] > B[i]) {
			aux = A[i];
			A[i] = B[i];
			B[i] = aux;
		}
	}
	
	for (i=1;i<=N;i++)
		T[i] = i;
	
	for (i=N-1;i>=1;i--) {
		for (j=A[i];j<=B[i];) {
			if (V[j] == 0) {
				V[j] = C[i];
				T[j] = B[i]+1;
				j++;
			} else
				j = T[j];
		}
	}
	
	for (i=1;i<N;i++)
		fprintf(g,"%d\n",V[i]);
//		g<<V[i]<<"\n";
	
	return 0;
}