Pagini recente » Cod sursa (job #868926) | Cod sursa (job #140698) | Cod sursa (job #735078) | Cod sursa (job #746947) | Cod sursa (job #1259107)
#include <cstdio>
#include <algorithm>
using namespace std;
FILE *f=fopen ("curcubeu.in","r");
FILE *g=fopen ("curcubeu.out","w");
int a[1000005],b[1000005],c[1000005],urm[1000005],sol[1000005];
int main(){
int n,st,dr;
fscanf (f,"%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;
}
for (int i=n-1;i>0;--i){
st=min(a[i],b[i]);
dr=max(a[i],b[i]);
for (int j=st;j<=dr;++j){
while (urm[j] && j<=dr) j=urm[j];
if (j<=dr){
sol[j]=c[i];
urm[j]=dr+1;
}
}
}
for (int i=1;i<n;++i) fprintf (g,"%d\n",sol[i]);
return 0;
}