Pagini recente » Istoria paginii runda/oni2010_9_2 | Cod sursa (job #1758436) | Istoria paginii runda/cnilc1_2-dq/clasament | Cod sursa (job #1487363) | Cod sursa (job #2437720)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
const int NMAX = 1000010;
int pos[NMAX],cul[NMAX];
int a[NMAX],b[NMAX],c[NMAX];
int main()
{
int n;
fin>>n>>a[1]>>b[1]>>c[1];
for(int i = 2;i<n;i++)
{
a[i]=((long long)a[i-1]*(long long)i)%n;
b[i]=((long long)b[i-1]*(long long)i)%n;
c[i]=((long long)c[i-1]*(long long)i)%n;
}
for(int i =n-1;i>=1;i--)
{
int l = min(a[i],b[i]);
int r = max(a[i],b[i]);
for(int j = l;j<=r;j++)
{
if(cul[j]){
j=pos[j]-1;
}
else
{
cul[j]=c[i];
pos[j]=r+1;
}
}
}
for(int i = 1;i<=n-1;i++)
fout<<cul[i]<<'\n';
return 0;
}