Pagini recente » Cod sursa (job #1195058) | Cod sursa (job #1137211) | Cod sursa (job #3128694) | Cod sursa (job #2683750) | Cod sursa (job #3331328)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream in("curcubeu.in");
ofstream out("curcubeu.out");
const int MAX=1000005;
long long T[MAX],sol[MAX];
int get_root(int nod){
int root=nod;
while(T[root]!=root){
root=T[root];
}
while(T[nod]!=root){
int aux=T[nod];
T[nod]=root;
nod=aux;
}
return root;
}
int main(){
ios_base::sync_with_stdio(0);
in.tie(0);
out.tie(0);
int n;
long long Ar,Br,Cr;
in>>n>>Ar>>Br>>Cr;
for(int i=1;i<=n+1;i++){
T[i]=i;
}
for(int i=1;i<n;i++){
int st=min(Ar,Br)+1;
int dr=max(Ar,Br)+1;
for(int j=get_root(st);j<=dr;j=get_root(j)){
sol[j]=Cr;
T[j]=get_root(j+1);
}
Ar = (Ar * (i + 1)) % n;
Br = (Br * (i + 1)) % n;
Cr = (Cr * (i + 1)) % n;
}
for(int i=1;i<n;i++){
out<<sol[i]<<"\n";
}
}