Pagini recente » Cod sursa (job #3361315) | Cod sursa (job #3361766) | Cod sursa (job #3361777) | Cod sursa (job #3362109) | Cod sursa (job #3362108)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
vector<int> tata;
vector<int> sz;
int culoare[1000004];
long long A[1000002],B[1000002],C[1000002];
int n,q,maxim=0,a1,b1,c1;
int rad(int x)
{
if(tata[x]==0)
{
return x;
}
tata[x]=rad(tata[x]);
return tata[x];
}
void join(int x,int y)
{
x=rad(x);
y=rad(y);
if(sz[x]>sz[y])
{
sz[x]+=sz[y];
tata[y]=x;
}
else
{
sz[y]+=sz[x];
tata[x]=y;
}
}
void query(int x,int y)
{
if(rad(x)==rad(y))
{
fout<<"DA"<<endl;
}
else fout<<"NU"<<endl;
}
bool comp(pair<int,int>a, pair<int,int>b)
{
return a.first<b.first;
}
int main()
{
tata.resize(1000005);
sz.resize(1000005,1);
fin>>n>>A[1]>>B[1]>>C[1];
for(int i=2;i<n;i++)
{
A[i] = (A[i-1] * i) % n;
B[i] = (B[i-1] * i) % n;
C[i] = (C[i-1] * i) % n;
}
for(int i=n-1;i>=1;i--)
{
int st=min(A[i],B[i]);
int dr=max(A[i],B[i]);
int c=C[i];
for(int j=rad(st);j<=dr;j=rad(j+1))
{
culoare[j]=c;
tata[j]=j+1;
}
}
for(int i=1;i<n;i++) fout<<culoare[i]<<endl;
return 0;
}