Pagini recente » Cod sursa (job #1857958) | Cod sursa (job #2152352) | Cod sursa (job #1640074) | Cod sursa (job #2457200) | Cod sursa (job #3331324)
#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){
if(T[nod]==nod){
return nod;
}
return T[nod]=get_root(T[nod]);
}
int main(){
int n;
long long Ar,Br,Cr;
in>>n>>Ar>>Br>>Cr;
for(int i=1;i<=n;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";
}
}