Pagini recente » Cod sursa (job #955879) | Cod sursa (job #1319098) | Cod sursa (job #2351336) | Cod sursa (job #1005035) | Cod sursa (job #2104336)
#include <iostream>
#include <fstream>
#define Nmax 1000005
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
int N, p[Nmax],urm[Nmax];
struct
{
int A, B, C;
}v[Nmax];
int main()
{
fin >> N >> v[1].A >> v[1].B >> v[1].C;
if(v[1].A > v[1].B)
swap(v[1].A, v[1].B);
for(int i = 2; i <= N - 1; i++)
{
v[i].A = (1LL * v[i - 1].A * i) % N;
v[i].B = (1LL * v[i - 1].B * i) % N;
v[i].C = (1LL * v[i - 1].C * i) % N;
if(v[i].A > v[i].B)
swap(v[i].A , v[i].B);
}
for(int i = N - 1; i >= 1; i--)
for(int j = v[i].A; j <= v[i].B; j++)
if(p[j] == 0)
{
p[j] = v[i].C;
urm[j] = v[i].B;
}
else j = urm[j];
for(int i = 1; i <= N - 1; i++)
fout << p[i] << "\n";
return 0;
}