Pagini recente » Istoria paginii utilizator/erzsike | Monitorul de evaluare | Diferente pentru agm-2018/runda1 intre reviziile 17 si 16 | Cod sursa (job #2306989) | Cod sursa (job #658667)
Cod sursa(job #658667)
#include<stdio.h>
#include<fstream>
using namespace std;
ifstream f("curcubeu.in");
FILE *g = fopen("curcubeu.out","w");
#define MaxN 1000100
int N,A[MaxN],B[MaxN],C[MaxN],MIN,MAX,D[MaxN],cul[MaxN];
int main()
{
f >> 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]) { int aux = A[i]; A[i] = B[i] ; B[i] = aux; }
}
for(int i=N-1;i;i--)
{
for(int j=A[i];j<=B[i];)
if(!cul[j])
{
cul[j] = C[i];
D[j] = B[i]+1;
j ++;
}
else
j = D[j];
}
for(int i=1;i<N;i++)
fprintf(g,"%d\n",cul[i]);
return 0;
}