Pagini recente » Cod sursa (job #1323183) | Cod sursa (job #3241456) | Cod sursa (job #492365) | Cod sursa (job #929591) | Cod sursa (job #2462023)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream in("curcubeu.in");
ofstream out("curcubeu.out");
const int dim = 1000001;
int n,parent[dim],ans[dim],a[dim],b[dim],c[dim];
int Find(int x)
{
if (x == parent[x])
{
return x;
}
parent[x] = Find(parent[x]);
return parent[x];
}
int main()
{
in >> n >> a[1] >> b[1] >> c[1];
for (int i=1; i<=n; i++)
{
parent[i] = i;
}
int a_nou,b_nou,c_nou;
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,dr;
for (int i=n-1; i>= 1; i--)
{
st = min(a[i],b[i]);
dr = max(a[i],b[i]);
for (int j=Find(st); j<=dr; j = Find(j))
{
ans[j] = c[i];
parent[j] = j+1;
}
}
for (int i=1; i<=n-1; i++)
{
out << ans[i] << "\n";
}
return 0;
}