Cod sursa(job #2142155)

Utilizator DimaTCDima Trubca DimaTC Data 24 februarie 2018 19:47:13
Problema Curcubeu Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<bits/stdc++.h>

using namespace std;

int A,C,B,n;

struct lol {
	int a;
	int b;
	int c;
};

lol a[1000155];
int t[1000155];
int b[1000155];

void color(int i) {
	int nr=a[i].a;
	while (nr<=a[i].b) {
		if (!t[nr]) b[nr]=a[i].c, t[nr++]=a[i].b+1;
		else nr=t[nr];
	}
}

int main() { 
	ifstream cin("curcubeu.in");
	ofstream cout("curcubeu.out");
	
	cin>>n>>A>>B>>C;
	if (B<A) swap(A,B);
	a[1].a=A; a[1].b=B; a[1].c=C;

	for (int i=2; i<n; i++) {
		a[i].a=(a[i-1].a*i)%n;
		a[i].b=(a[i-1].b*i)%n;
		a[i].c=(a[i-1].c*i)%n;
		
		if (a[i].a>a[i].b) swap(a[i].a,a[i].b);
	}
	
	for (int i=n-1; i>=1; i--) {
		color(i);
	}
	
	for (int i=1; i<n; i++) cout<<b[i]<<"\n";
	
	return 0;
}