Pagini recente » Cod sursa (job #2447946) | Cod sursa (job #2777040) | Cod sursa (job #3183489) | Cod sursa (job #484435) | Cod sursa (job #2467040)
#include <fstream>
#include <algorithm>
std::ifstream fin("curcubeu.in");
std::ofstream fout("curcubeu.out");
const int Dim = 1000000 + 5;
int A[Dim], B[Dim], C[Dim];
int CF[Dim], last[Dim];
int n;
int main()
{
fin >> n >> A[1] >> B[1] >> C[1];
const int Mod = n--;
for (int i = 2; i <= n; ++i)
{
A[i] = (A[i - 1] * i) % Mod;
B[i] = (B[i - 1] * i) % Mod;
C[i] = (C[i - 1] * i) % Mod;
}
for (int i = n; i >= 1; --i)
{
int st = std::min(A[i], B[i]);
int dr = std::max(A[i], B[i]);
for (int j = st; j <= dr; ++j)
{
if (!CF[j])
{
CF[j] = C[i];
last[j] = dr;
}
else
j = last[j];
}
}
for (int i = 1; i <= n; ++i)
fout << CF[i] << '\n';
fin.close();
fout.close();
return 0;
}