Pagini recente » Cod sursa (job #1545880) | Cod sursa (job #1151297) | Cod sursa (job #2284355) | Cod sursa (job #1217548) | Cod sursa (job #657936)
Cod sursa(job #657936)
#include <fstream>
#define NMAX 1000001
using namespace std;
ifstream f("curcubeu.in");
ofstream g("curcubeu.out");
int n,a[NMAX],b[NMAX],c[NMAX],PR[NMAX],v[NMAX],i,x;
int main () {
f >> n >> a[1] >> b[1] >> c[1];
PR[1]=1;PR[n]=n;
if (a[1]>b[1]) swap(a[1],b[1]);
for (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]);
PR[i]=i;
}
for (i=n-1;i>=1;i--)
for (x=a[i];x<=b[i];)
if (v[x]==0) {
v[x]=c[i];
PR[v[x]]=x;
x++;
}
else x=PR[v[x]]+1;
for (i=1;i<n;i++)
g << v[i] << '\n';
f.close();g.close();
return 0;
}