Pagini recente » Cod sursa (job #2222924) | Cod sursa (job #2066995) | Cod sursa (job #950642) | Cod sursa (job #2557763) | Cod sursa (job #1864130)
#include <fstream>
using namespace std;
ifstream fin ("curcubeu.in");
ofstream fout ("curcubeu.out");
int n, A[1000010], B[1000010], C[1000010], T[1000010], Next[1000010], Sol[1000010];
int main()
{
fin >> 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;
}
for (int i = 1; i < n; i ++)
{
Next[i] = i + 1;
}
for (int i = 1; i < n; i ++)
{
fout << A[i] << ' ' << B[i] << ' ' << C[i] << '\n';
}
for (int i = n - 1; i >= 1; i --)
{
int j1 = A[i];
int j2 = B[i];
if (j1 > j2) j1 ^= j2 ^= j1 ^= j2;
while (j1 <= j2)
{
if (T[j1] > i)
{
j1 = Next[T[j1]];
}
else
{
Sol[j1] = C[i];
T[j1] = i;
Next[i] = j1 + 1;
j1 ++;
}
}
}
for (int i = 1; i < n; i ++) fout << Sol[i] << '\n';
fout.close();
return 0;
}