Pagini recente » Cod sursa (job #1397699) | Cod sursa (job #261235) | Cod sursa (job #1588413) | Cod sursa (job #3166817) | Cod sursa (job #658579)
Cod sursa(job #658579)
#include<fstream>
#include<iostream>
#define NMAX 1000001
using namespace std;
ifstream in("curcubeu.in");
ofstream out("curcubeu.out");
int N, A[NMAX], B[NMAX], C[NMAX], color[NMAX], Next[NMAX];
void Rainbow(int A, int B, int CurrentC)
{
for(int j = A; j <= B; )
if(color[j] == 0)
{
color[j] = CurrentC;
Next[CurrentC] = j;
j++;
}
else
j = Next[CurrentC] +1;
}
int main()
{
int i,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*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])
{
Aux = A[i];
A[i] = B[i];
B[i] = Aux;
}
}
for(i = N-1; i > 0; i--)
Rainbow(A[i], B[i], C[i]);
for(i = 1; i <= N-1; i++)
out << color[i] << '\n';
}