Pagini recente » Cod sursa (job #2146365) | Cod sursa (job #2983860) | Cod sursa (job #695645) | Cod sursa (job #2665575) | Cod sursa (job #2184237)
#include<fstream>
using namespace std;
ifstream in ("curcubeu.in");
ofstream out ("curcubeu.out");
int n,mod,ant,a[1000001],b[1000001],c[1000001],culoare[1000001],nxt[1000001];
int main (void) {
in >> n >> a[1] >> b[1] >> c[1];
mod = n;
n --;
for (int i = 2; i <= n; i ++) {
a[i] = (a[i-1] * i) % mod;
b[i] = (b[i-1] * i) % mod;
c[i] = (c[i-1] * i) % mod;
if (a[i] > b[i]) {
swap (a[i],b[i]);
}
}
for (int i = 1; i < n; i ++) {
nxt[i] = i+1;
}
for (int i = n; i >= 1; i --) {
for (int j = 1; j <= n; j = nxt[j]) {
if (a[i] <= j && j <= b[i]) {
nxt[ant] = nxt[j];
culoare[j] = c[i];
}
ant = j;
if (ant == n) {
break;
}
}
}
for (int i = 1; i <= n; i ++) {
out << culoare[i] <<"\n";
}
return 0;
}