Pagini recente » Cod sursa (job #19625) | Cod sursa (job #2401733) | Cod sursa (job #1671344) | Cod sursa (job #2910144) | Cod sursa (job #3191768)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
int n,a,b,c;
vector<int> tatici;
vector<int> colorat;
void getNext(int& k) {
int mem = k;
while(tatici[k] != -1) {
k = tatici[k];
}
while(tatici[mem] != -1) {
const int aux = tatici[mem];
tatici[mem] = k;
mem = aux;
}
}
int main() {
fin >> n >> a >> b >> c;
tatici.assign(n, -1);
colorat.assign(n, 0);
for (int i = a; i <= b; i++) {
tatici[i] = b+1;
colorat[i] = c;
}
for (int i = 2; i < n; i++) {
a = (1ll*a*i) % n;
b = (1ll*b*i) % n;
c = (1ll*c*i) % n;
const int left = min(a,b);
const int right = max(a,b);
for (int k = left; k <= right; k++) {
colorat[k] = c;
if (tatici[k+1] != -1) {
const int curr = k;
getNext(k);
tatici[curr] = k;
} else {
tatici[k] = right+1;
}
}
}
for (int i = 1; i < n; i++) {
fout << colorat[i] << '\n';
}
return 0;
}