Pagini recente » Cod sursa (job #686107) | Cod sursa (job #2299520) | Cod sursa (job #2260862) | Cod sursa (job #410232) | Cod sursa (job #648416)
Cod sursa(job #648416)
#include <fstream>
using namespace std;
#define maxN 1000005
int A[maxN], B[maxN], C[maxN], next[maxN], col[maxN];
void swwap (int &a, int &b)
{
int aux = a;
a = b;
b = aux;
}
int main()
{
ifstream f ("curcubeu.in");
ofstream g ("curcubeu.out");
int N;
f >> N >> A[1] >> B[1] >> C[1];
if (A[1] > B[1]) swwap (A[1], B[1]);
for (int i = 2; i < N; ++ i)
{
A[i] = (A[i - 1] * i * 1LL) % N;
B[i] = (B[i - 1] * i * 1LL) % N;
C[i] = (C[i - 1] * i * 1LL) % N;
if (A[i] > B[i]) swwap (A[i], B[i]);
}
for (int t = N - 1; t >= 1; -- t)
for (int i = A[t]; i <= B[t]; )
if (col[i]) i = next[col[i]] + 1;
else
{
col[i] = C[t];
next[col[i]] = i;
++ i;
}
for (int i = 1; i < N; ++ i) g << col[i] << '\n';
return 0;
}