Pagini recente » Cod sursa (job #285176) | Cod sursa (job #1435506) | Cod sursa (job #1544878) | Cod sursa (job #2270994) | Cod sursa (job #2462078)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("curcubeu.in");
ofstream out("curcubeu.out");
const int dim = 1000010;
int n,next[dim],a[dim],b[dim],c[dim],ans[dim];
int main()
{
int i,j;
in >> n >> a[1] >> b[1] >> c[1];
int a_nou,b_nou,c_nou;
for (i=2; i<=n-1; i++)
{
a[i] = (1LL*a[i-1]*i)%n;
b[i] = (1LL*b[i-1]*i)%n;
c[i] = (1LL*c[i-1]*i)%n;
}
int st,dr;
int x;
for (i=n-1; i>= 1; i--)
{
st = min(a[i],b[i]);
dr = max(a[i],b[i]);
x = st;
while (x <= dr)
{
if (next[x] == 0)
{
ans[x] = c[i];
next[x] = dr+1;
x++;
}
else
{
x = next[x];
}
}
}
for (i=1; i<=n-1; i++)
{
out << ans[i] << "\n";
}
return 0;
}