Cod sursa(job #85320)

Utilizator wefgefAndrei Grigorean wefgef Data 20 septembrie 2007 21:39:17
Problema Curcubeu Scor Ascuns
Compilator cpp Status done
Runda Marime 0.82 kb
#include <cstdio>

const int Nmax = 1000005;

int n;
int ret[Nmax];

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

int main() {
	freopen("curcubeu.in", "r", stdin);
	freopen("curcubeu.out", "w", stdout);

	int a, b, c;
	scanf("%d %d %d %d", &n, &a, &b, &c);
	for (int i = min(a, b); i <= max(a, b); ++i)
		ret[i] = c;
	for (int i = 2; i < n; ++i) {
		long long aux;

		aux = a;
		aux *= static_cast<long long>(i);
		aux %= static_cast<long long>(n);
		a = aux;

		aux = b;
		aux *= static_cast<long long>(i);
		aux %= static_cast<long long>(n);
		b = aux;

		aux = c;
		aux *= static_cast<long long>(i);
		aux %= static_cast<long long>(n);
		c = aux;

		for (int i = min(a, b); i <= max(a, b); ++i)
			ret[i] = c;
	}
	for (int i = 1; i < n; ++i)
		printf("%d\n", ret[i]);
}