Cod sursa(job #800448)

Utilizator marinMari n marin Data 21 octombrie 2012 17:29:40
Problema Curcubeu Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>

#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");
	ofstream g("curcubeu.out");
	
	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] * i) % N;
		B[i] = (B[i-1] * i) % N;
		C[i] = (C[i-1] * 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];j = T[j]) {
			if (T[j] == j) {
				V[j] = C[i];
				T[j] = T[j+1];
			}
		}
	}
	
	for (i=1;i<N;i++)
		g<<V[i]<<"\n";
	
	return 0;
}