Pagini recente » Autentificare | Cod sursa (job #567880) | Cod sursa (job #995247) | Cod sursa (job #2043919) | Cod sursa (job #2839757)
#include <tuple>
#include <iostream>
using namespace std;
tuple<int,int,int> v[1000001];
int ans[1000001], colored[1000001];
int available(int j){
int next=colored[j];
while(next!=colored[next]){
next=colored[next];
}
int aux=next;
next=colored[j];
while(next!=colored[next]){
int a=next;
next=colored[next];
colored[a]=max(b,aux);
}
return aux;
}
void solve()
{
int n,a,b,c;
cin>>n>>a>>b>>c;
v[1]=tie(a,b,c);
colored[1]=1;
for(int i=2; i<n; i++){
a=((long long)a*i)%n;
b=((long long)b*i)%n;
c=((long long)c*i)%n;
v[i]=tie(min(a,b),max(a,b),c);
colored[i]=i;
}
colored[n]=n;
for(int i=n-1; i>0; i--){
int a,b,c;
tie(a,b,c)=v[i];
for(int j=available(a); j<=b;){
ans[j]=c;
int next=available(j+1);
colored[j]=next;
j=next;
}
}
for(int i=1; i<n; i++){
cout<<ans[i]<<"\n";
}
}
int main()
{
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
freopen("curcubeu.in", "r", stdin);
freopen("curcubeu.out", "w", stdout);
ios::sync_with_stdio(0);
cin.tie(0);
solve();
return 0;
}