Pagini recente » Cod sursa (job #2435367) | Cod sursa (job #1919329) | Cod sursa (job #1768472) | Cod sursa (job #395785) | Cod sursa (job #2015911)
#include <cstdio>
#include <vector>
using namespace std;
FILE *in,*out;
const int nmax = 1000000;
int a[1+nmax],b[1+nmax],c[1+nmax],v[1+nmax],jump[1+nmax];
int main()
{
in = fopen("curcubeu.in","r");
out = fopen("curcubeu.out","w");
int n;
fscanf(in,"%d %d %d %d",&n,&a[1],&b[1],&c[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;
if(a[i] > b[i])
swap(a[i],b[i]);
}
for(int i = n-1;i >= 1;i --)
{
int poz = a[i];
while(poz <= b[i])
{
if(jump[poz] == 0)
{
jump[poz] = b[i]+1;
v[poz] = c[i];
poz ++;
}
else
{
poz = jump[poz];
}
}
}
for(int i = 1;i < n;i ++)
fprintf(out,"%d\n",v[i]);
return 0;
}