Pagini recente » Cod sursa (job #3362844) | Cod sursa (job #3364138) | Cod sursa (job #3364022) | Cod sursa (job #3364111) | Cod sursa (job #3363789)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("curcubeu.in");
ofstream cout("curcubeu.out");
const int NMAX=1000005;
struct vect
{
int a,b,c;
}v[NMAX];
int sol[NMAX],nxt[NMAX];
int f(int x)
{
if(nxt[x]==x) return x;
return nxt[x]=f(nxt[x]);
}
int main()
{
int n,a1,b1,c1; cin>>n>>a1>>b1>>c1;
v[1].a=a1; v[1].b=b1; v[1].c=c1;
for(int i=2;i<n;i++)
{
v[i].a=(long long)v[i-1].a*i%n;
v[i].b=(long long)v[i-1].b*i%n;
v[i].c=(long long)v[i-1].c*i%n;
}
for(int i=1;i<=n;i++) nxt[i]=i;
for(int i=n-1;i>=1;i--){
int st=min(v[i].a,v[i].b);
int dr=max(v[i].a,v[i].b);
st=f(st);
while(st<=dr)
{
sol[st]=v[i].c;
nxt[st]=f(st+1);
st=f(st);
}
}
for(int i=1;i<=n-1;i++) cout<<sol[i]<<'\n';
return 0;
}