Pagini recente » Cod sursa (job #1615946) | Cod sursa (job #2801069) | Cod sursa (job #227680) | Cod sursa (job #91492) | Cod sursa (job #3193066)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
const int NMAX = 1e6 + 7;
long long a[NMAX], b[NMAX], c[NMAX], urm[NMAX], ans[NMAX];
int main()
{
int n;
fin >> n >> a[1] >> b[1] >> c[1];
for (int i = 2; i <= n; 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;
}
for (int i = 1; i < n; i++)
urm[i] = i + 1;
for (int i = n - 1; i >= 1; i--)
{
if (a[i] > b[i])
{
swap(a[i], b[i]);
}
for (int j = a[i]; j <= b[i]; j++)
{
if (ans[j] != 0)
{
j = urm[j] - 1;
}
else
{
ans[j] = c[i];
urm[j] = b[i] + 1;
}
}
}
for (int i = 1; i < n; i++)
{
fout << ans[i] << '\n';
}
return 0;
}