Pagini recente » Cod sursa (job #2593174) | Cod sursa (job #2262283)
#include <fstream>
#define NMAX 1000001
using namespace std;
ifstream cin("curcubeu.in");
ofstream cout("curcubeu.out");
int n, a[NMAX], b[NMAX], c[NMAX], v[NMAX],v1[NMAX];
int main()
{
int i;
cin >> n >> a[1] >> b[1] >> c[1];
v1[1] = 1;
for (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;
v1[i]=i;
}
int st,dr;
int p=n-1;
while(p >= 1)
{
if(a[p]<b[p])
{
st=a[p];
dr=b[p];
}
else
{
st=b[p];
dr=a[p];
}
while(st<=dr)
{
if (v[st])
st=v1[st];
else
{
v[st]=c[p];
v1[st]=dr+1;
st++;
}
}
p--;
}
for(i = 1; i < n; i++)
cout << v[i] << '\n';
return 0;
}