Pagini recente » Cod sursa (job #3365285) | Cod sursa (job #3364981) | Cod sursa (job #3364664) | Cod sursa (job #3364973) | Cod sursa (job #3364974)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("curcubeu.in");
ofstream cout("curcubeu.out");
int tata[1000005];
int rez[1000005];
struct operatie{
int a;
int b;
int c;
};
operatie v[1000005];
int rad(int x){
if(tata[x]==x)
return x;
return tata[x]=rad(tata[x]);
}
int main()
{
int n,i,st,dr,x;
long long a,b,c;
cin>>n>>a>>b>>c;
v[1].a=a;
v[1].b=b;
v[1].c=c;
for(i=2;i<=n-1;i++){
a=(a*i)%n;
b=(b*i)%n;
c=(c*i)%n;
v[i].a=a;
v[i].b=b;
v[i].c=c;
}
for(i=1;i<=n;i++)
tata[i]=i;
for(i=n-1;i>=1;i--){
st=min(v[i].a,v[i].b);
dr=max(v[i].a,v[i].b);
x=rad(st);
while(x<=dr){
rez[x]=v[i].c;
tata[x]=rad(x+1);
x=rad(x);
}
}
for(i=1;i<=n-1;i++)
cout<<rez[i]<<"\n";
return 0;
}