Pagini recente » Cod sursa (job #1499991) | Cod sursa (job #1888000) | Cod sursa (job #1113799) | Cod sursa (job #2887652) | Cod sursa (job #2262233)
#include <fstream>
using namespace std;
ifstream in("curcubeu.in");
ofstream out("curcubeu.out");
int n, a[1000001], b[1000001], c[1000001];
int v[1000001], Next[1000001];
int main()
{
in >> n >> a[1] >> b[1] >> c[1];
Next[1] = 1;
for ( int i = 2; i < n; ++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;
Next[i] = i;
}
int i = n - 1,st,dr;
while(i >= 1)
{
st = min(a[i],b[i]);
dr = max(a[i],b[i]);
while(st <= dr)
{
if (v[st])
st = Next[st];
else
{
v[st] = c[i];
Next[st] = dr + 1;
++st;
}
}
--i;
}
for(int i = 1; i < n; i++)
out << v[i] << '\n';
return 0;
}