Pagini recente » Cod sursa (job #957206) | Cod sursa (job #1238029) | Cod sursa (job #2471515) | Cod sursa (job #2962430) | Cod sursa (job #2470393)
#include <bits/stdc++.h>
#define N_MAX 1000000
using namespace std;
struct Color
{
size_t min;
size_t max;
size_t id;
} colors[N_MAX + 1];
struct Interval
{
size_t end = 0;
size_t id = 0;
} ans[N_MAX + 1];
int main()
{
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
size_t n, a, b, c;
fin >> n >> a >> b >> c;
for(size_t i = 1; i < n; ++i)
{
colors[i].min = min(a, b);
colors[i].max = max(a, b);
colors[i].id = c;
a = (a * (i + 1)) % n;
b = (b * (i + 1)) % n;
c = (c * (i + 1)) % n;
}
for(size_t i = n - 1; i >= 1; --i)
{
size_t j;
for(j = colors[i].min; j <= colors[i].max; ++j)
{
if(ans[j].id == 0) ans[j].id = colors[i].id;
else j = ans[j].end;
}
--j;
for(size_t k = colors[i].min; ans[k].end != j && k <= colors[i].max; ++k )
ans[k].end = j;
}
for(size_t i = 1; i < n; ++i) fout << ans[i].id << '\n';
}