Pagini recente » Cod sursa (job #849345) | Cod sursa (job #1675642) | Cod sursa (job #915315) | Cod sursa (job #1042839) | Cod sursa (job #2839732)
#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];
int 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(int j=a; j<=b; j++){
j=available(j);
if(j<=b && !ans[j]){
ans[j]=c;
colored[j]=available(j+1);
}
colored[j]=max(colored[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;
}