Pagini recente » Cod sursa (job #1968472) | Cod sursa (job #1940997) | Cod sursa (job #2933149) | Cod sursa (job #1782978) | Cod sursa (job #2920393)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
const int NMAX = 1000005;
int n;
int sol[NMAX], N[NMAX], A[NMAX], B[NMAX], C[NMAX];
void solve()
{
int a, b, c;
fin >> n >> a >> b >> c;
if(a > b)
swap(a, b);
A[1] = a;
B[1] = b;
C[1] = c;
for(int i = 2; i <= n; i++)
{
a = (a * i) % n;
b = (b * i) % n;
c = (c * i) % n;
if(a > b)
swap(a, b);
A[i] = a;
B[i] = b;
C[i] = c;
}
for(int i = n - 1; i >= 1; i--)
{
for(int j = A[i]; j <= B[i]; j++)
{
while(N[j] != 0)
j = N[j];
if(j <= B[i])
{
N[j] = B[i] + 1;
sol[j] = C[i];
}
else
break;
}
}
for(int i = 1; i < n; i++)
{
fout << sol[i] << "\n";
}
}
int main()
{
solve();
return 0;
}