Pagini recente » Cod sursa (job #2199222) | Cod sursa (job #829363) | Cod sursa (job #1371450) | Cod sursa (job #254965) | Cod sursa (job #658578)
Cod sursa(job #658578)
#include<fstream>
#include<algorithm>
#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;
in >> N >> A[1] >> B[1] >> C[1];
if(A[1] > B[1])
swap(A[1], B[1]);
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])
swap(A[i], B[i]);
}
for(i = 1; i <= N-1; i++)
Rainbow(A[i], B[i], C[i]);
for(i = 1; i <= N-1; i++)
out << color[i] << '\n';
}