Cod sursa(job #1106436)

Utilizator cernat.catallinFMI Cernat Catalin Stefan cernat.catallin Data 12 februarie 2014 20:11:48
Problema Curcubeu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <stdio.h>
#include <algorithm>
using namespace std;

#define Nmax 1000005

int cl[Nmax];
int n, a, b, c;
int l, r, x, y, i;

void clr(int a, int b, int c){
	if (i <= n - 2){
		++i;
		clr( ( (long long int) a * i ) % n, ( (long long int) b * i ) % n, ( (long long int) c * i ) % n  );
	}

	x = min(a, b);
	y = max(a, b);
	if (x > r || y < l)
		for (int i = x; i <= y; ++i)
			cl[i] = c;
	else{
		for (int i = x; i < l; ++i)
			cl[i] = c;
		for (int i = r + 1; i <= y; ++i)
			cl[i] = c;
	}
	l = x;
	r = y;
}

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

	scanf("%d %d %d %d", &n, &a, &b, &c);
	fclose(stdin);

	l = r = -1;
	i = 1;
	clr(a, b, c);
	for (int i = 1; i <= n - 1; ++i)
		printf("%d\n", cl[i]);
	fclose(stdout);

	return 0;
}