Cod sursa(job #85916)

Utilizator sima_cotizoSima Cotizo sima_cotizo Data 23 septembrie 2007 11:19:28
Problema Curcubeu Scor 20
Compilator cpp Status done
Runda Autumn Warmup 2007, Runda 2 Marime 0.8 kb
#include <cstdio>
// #include <cstring>

#define FIN "curcubeu.in"
#define FOUT "curcubeu.out"
#define MAX 1000
#define actual(X) X[i]=(X[i-1]*i)%N

inline long max(long a, long b) {
	return a>b ? a : b;
}
inline long min(long a, long b) {
	return a<b ? a : b;
}

long A[MAX], B[MAX], C[MAX];
long R[MAX];
long N;

void fill(long x, long y, long z) {
	long i;
    if ( x>y ) {
    	long t = x; x = y; y = t;
    }
	for (i=x; i<=y; ++i)
		R[i] = z;
}

void brut() {
	long i;
	fill(A[1],B[1],C[1]);
	for (i=2; i<=N-1; ++i) {
		actual(A);
		actual(B);
		actual(C);
		fill(A[i],B[i],C[i]);
	}
}

int main() {
	freopen(FIN, "r", stdin);
	scanf("%ld %ld %ld %ld", &N, A+1, B+1, C+1);
	fclose(stdin);
	
	brut();

	freopen(FOUT, "w", stdout);
	long i;
	for (i=1; i<N; ++i)
		printf("%ld\n", R[i]);
	fclose(stdout);
	return 0;
}