Pagini recente » Cod sursa (job #1533074) | Istoria paginii runda/simulare_oji_2023_clasa_10_13_martie | Cod sursa (job #988043) | Cod sursa (job #1295825) | Cod sursa (job #659040)
Cod sursa(job #659040)
#include<fstream>
#define NMAX 1000001
using namespace std;
ifstream in("curcubeu.in");
ofstream out("curcubeu.out");
int N, A[NMAX], B[NMAX], C[NMAX], next[NMAX], cul[NMAX];
int main()
{
int i,j,Aux;
in >> N >> A[1] >> B[1] >> C[1];
if(A[1] > B[1])
{
Aux = A[1];
A[1] = B[1];
B[1] = Aux;
}
for(i = 2; i <= N-1; i++)
{
A[i] = (1LL*i*A[i-1])%N;
B[i] = (1LL*i*B[i-1])%N;
if(A[i] > B[i])
{
Aux = A[i];
A[i] = B[i];
B[i] = Aux;
}
C[i] = (1LL*i*C[i-1])%N;
}
for(i = N-1; i > 0; --i)
for(j = A[i]; j <=B[i]; )
if(!cul[j])
{
cul[j] = C[i];
next[j] = B[i] + 1;
++j;
}
else j = next[j];
for(i = 1; i < N; i++)
out << cul[i] << '\n';
}