Pagini recente » Borderou de evaluare (job #1573043) | Monitorul de evaluare | Cod sursa (job #1492403) | Cod sursa (job #2870000) | Cod sursa (job #2679094)
#include <bits/stdc++.h>
using namespace std;
ifstream fi("curcubeu.in");
ofstream fo("curcubeu.out");
int n, A[1000005], B[1000005], C[1000005], S[2000005], O[2000005];
int main()
{
fi >> n >> A[1] >> B[1] >> C[1];
for(int i = 2; i <= n - 1; i++)
{
A[i] = (A[i-1] * i) % n;
B[i] = (B[i-1] * i) % n;
C[i] = (C[i-1] * i) % n;
}
int st;
for (int i = n - 1; i >= 1; i--)
{
st = min(A[i],B[i]);
while(st <= max(A[i],B[i]))
if(S[st])st = S[st]+1;
else {
O[st] = C[i];
S[st++] = max(A[i],B[i]);
}
}
for (int i = 1; i < n; ++i )
fo << O[i] << "\n";
return 0;
}