Pagini recente » Cod sursa (job #748892) | Cod sursa (job #2958884) | Cod sursa (job #535198) | Cod sursa (job #1802678) | Cod sursa (job #3191762)
#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) {
while(tatici[k] != -1) {
k = tatici[k];
}
}
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++) {
if (tatici[k] != -1) {
getNext(k);
} else {
tatici[k] = b+1;
colorat[k] = c;
}
}
}
for (int i = 1; i < n; i++) {
fout << colorat[i] << '\n';
}
return 0;
}