Pagini recente » Cod sursa (job #132408) | Cod sursa (job #1354205) | Cod sursa (job #376829) | Cod sursa (job #3291536) | Cod sursa (job #2652971)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("curcubeu.in");
ofstream g("curcubeu.out");
struct event
{
int left, right;
int color;
};
int n;
int a, b, c;
int color[1000000], skip[1000000];
event e[1000000];
int main()
{
f >> n >> a >> b >> c;
e[1] = {min(a, b), max(a, b), c};
skip[1] = 1;
for (int i=2; i<n; i++)
{
a = (1LL * a * i) % n;
b = (1LL * b * i) % n;
c = (1LL * c * i) % n;
e[i] = {min(a, b), max(a, b), c};
skip[i] = i;
}
for (int i=n-1; i>=1; i--)
for (int j=e[i].left; j<=e[i].right; j++)
if (color[j])
j = skip[j];
else
{
color[j] = e[i].color;
skip[j] = e[i].right;
}
for (int i=1; i<n; i++)
g << color[i] << "\n";
return 0;
}