Pagini recente » Cod sursa (job #1313976) | Cod sursa (job #2115140) | Cod sursa (job #1114961) | Cod sursa (job #1049430) | Cod sursa (job #2839737)
#include <iostream>
#include <vector>
#include <tuple>
using namespace std;
vector<tuple<long long,long long,long long>> v(1'000'001);
long long ans[1'000'001], colored[1'000'001];
long long available(int j){
// if(!colored[j]) return j;
int next=colored[j];
while(next!=colored[next]){
next=colored[next];
}
int aux=next,a;
next=colored[j];
while(next!=colored[next]){
a=next;
next=colored[next];
colored[a]=aux;
}
return aux;
}
void solve()
{
long long 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=(a*i)%n;
b=(b*i)%n;
c=(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--){
tie(a,b,c)=v[i];
for(long long j=available(a); j<=b;){
ans[j]=c;
j=available(j+1);
colored[j]=max(j,b);
}
}
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;
}