Pagini recente » Cod sursa (job #1387374) | Cod sursa (job #549280) | Cod sursa (job #2567633) | Cod sursa (job #1888624) | Cod sursa (job #379255)
Cod sursa(job #379255)
#include <algorithm>
using namespace std;
#define ll long long
#define DIM 1000005
int a[DIM],b[DIM],c[DIM],t[DIM],v[DIM];
int n;
void solve ()
{
int i,j,nr;
t[1]=2;
if (a[1]>b[1])
swap (a[1],b[1]);
for (i=2; i<n; ++i)
{
t[i]=i+1;
a[i]=((ll)a[i-1]*i)%n;
b[i]=((ll)b[i-1]*i)%n;
c[i]=((ll)c[i-1]*i)%n;
if (a[i]>b[i])
swap (a[i],b[i]);
}
for (i=n-1; i; --i)
for (j=a[i]; j<=b[i]; nr=t[j], t[j]=b[i]+1, j=nr)
{
if (!v[j])
v[j]=c[i];
}
}
void print ()
{
int i;
for (i=1; i<n; ++i)
printf ("%d\n",v[i]);
}
int main ()
{
freopen ("curcubeu.in","r",stdin);
freopen ("curcubeu.out","w",stdout);
scanf ("%d%d%d%d",&n,&a[1],&b[1],&c[1]);
solve ();
print ();
return 0;
}