Pagini recente » Cod sursa (job #1758910) | Cod sursa (job #3350134) | Cod sursa (job #1787925) | Borderou de evaluare (job #1622617) | Cod sursa (job #3340574)
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,unroll-loops,fast-math,O3")
#pragma GCC target("avx,avx2,fma")
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
const int NMAX=1e6;
int n,a,b,c,i,sol[NMAX+5],nxt[NMAX+5];
struct query{
int a,b,c;}v[NMAX+5];
int find_next(int x)
{
if (nxt[x]==x)
return x;
else
return nxt[x]=find_next(nxt[x]);
}
int main()
{
ios_base::sync_with_stdio(false);
fin.tie(nullptr); fout.tie(nullptr);
fin>>n>>v[1].a>>v[1].b>>v[1].c;
for (i=1; i<=n; i++)
nxt[i]=i;
for (i=2; i<n; i++)
{
v[i].a=(1LL*v[i-1].a*i)%n;
v[i].b=(1LL*v[i-1].b*i)%n;
v[i].c=(1LL*v[i-1].c*i)%n;
}
for (i=n-1; i>=1; i--)
{
int l=min(v[i].a,v[i].b),r=v[i].a+v[i].b-l;
l=find_next(l);
while (l<=r)
{
sol[l]=v[i].c;
nxt[l]=find_next(l+1);
l=find_next(l);
}
}
for (i=1; i<n; i++)
fout<<sol[i]<<"\n";
return 0;
}