Pagini recente » Cod sursa (job #1608718) | Cod sursa (job #981849) | Cod sursa (job #2264520) | Cod sursa (job #527238) | Cod sursa (job #2838567)
#include <bits/stdc++.h>
#define DIM 1000005
using namespace std;
ifstream f("curcubeu.in");
ofstream g("curcubeu.out");
int n, m;
int a[DIM], b[DIM], c[DIM], Next[DIM], ans[DIM];
int getNext(int x)
{
if (Next[x] == x)
return x;
else
return Next[x] = getNext(Next[x]);
}
int main()
{
f >> n >> a[1] >> b[1] >> c[1];
for (int i = 2; i < n; i++)
{
a[i] = a[i - 1] * i % n;
b[i] = b[i - 1] * i % n;
c[i] = c[i - 1] * i % n;
// g << a[i] << " " << b[i] << " " << c[i] << "\n";
}
n--;
for (int i = 1; i <= n; i++)
Next[i] = i;
Next[n + 1] = n + 1;
for (int i = n; i >= 1; i--)
{
int st = min(a[i], b[i]), dr = max(b[i], a[i]);
for (int j = getNext(st); j <= dr; j = Next[j])
{
ans[j] = c[i];
Next[j] = getNext(j + 1);
}
}
for (int i = 1; i <= n; i++)
g << ans[i] << "\n";
return 0;
}