Pagini recente » Cod sursa (job #163362) | Cod sursa (job #1654300) | Cod sursa (job #2874844) | Cod sursa (job #858255) | Cod sursa (job #3253550)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
struct abc{
long long int a,b,c;
} vabc[1000001];
long long int n, v[1000001], vtati[1000001];
int rad(int x){
int r=x,aux;
while (vtati[r] != r){
r = vtati[r];
}
while (vtati[x] != x){
aux = vtati[x];
vtati[x] = r;
x = aux;
}
return r;
}
int main()
{
fin>>n;
fin>>vabc[1].a>>vabc[1].b>>vabc[1].c;
for (int i=1; i<n; i++){
vtati[i] = i;
}
for (int i=2; i<n; i++){
vabc[i].a = (vabc[i-1].a*i)%n;
vabc[i].b = (vabc[i-1].b*i)%n;
vabc[i].c = (vabc[i-1].c*i)%n;
}
for (int i=n-1; i>=1; i--){
int st,dr;
st = min(vabc[i].a, vabc[i].b);
dr = max(vabc[i].a, vabc[i].b);
for (int j=rad(st); j<=dr; j=rad(j)+1){
if (v[j] == 0){
v[j] = vabc[i].c;
vtati[j] = rad(dr);
}
}
}
for (int i=1; i<n; i++){
fout<<v[i]<<"\n";
}
return 0;
}