Pagini recente » Cod sursa (job #1567470) | Cod sursa (job #1639449) | Cod sursa (job #471792) | Cod sursa (job #1894925) | Cod sursa (job #2262340)
#include <cstdio>
#include <algorithm>
using namespace std;
const int NMAX = 1000005;
int a[NMAX],b[NMAX],c[NMAX],imobiliare[NMAX],nexxt[NMAX];
int main()
{
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
int x,y,z,n;
scanf("%d%d%d%d",&n,&x,&y,&z);
a[1] = x;
b[1] = y;
c[1] = z;
nexxt[1]=1;
for(int i = 2 ; i < n ; i++)
{a[i] = (1LL*a[i-1]*i)%n;b[i] = (1LL*b[i-1]*i)%n;c[i] = (1LL*c[i-1]*i)%n;nexxt[i]=i;}
for(int i = n-1 ; i > 0; i--)
{
int st,dr;st = min(a[i],b[i]);dr = max(a[i],b[i]);
while(st<=dr)
{
if(imobiliare[st] == 0)
{nexxt[st] = dr+1;imobiliare[st] = c[i];st++;}
else st = nexxt[st];
}
}
for(int i = 1 ; i < n ; i++)
printf("%d\n",imobiliare[i]);
return 0;
}