Pagini recente » Cod sursa (job #1983513) | Cod sursa (job #2072098) | Cod sursa (job #1042997) | Cod sursa (job #239819) | Cod sursa (job #2956350)
#include <fstream>
using namespace std;
ifstream f("curcubeu.in");
ofstream g("curcubeu.out");
const int NMAX=1000003;
int n,A,B,C,a[NMAX],b[NMAX],c[NMAX],poz[NMAX],v[NMAX];
int main()
{
f>>n>>A>>B>>C;
a[1]=A;
b[1]=B;
c[1]=C;
if(a[1]>b[1])
swap(a[1],b[1]);
for(int i=2;i<=n;i++)
{
a[i]=(1LL*a[i-1]*i)%n;
b[i]=(1LL*b[i-1]*i)%n;
if(a[i]>b[i])
swap(a[i],b[i]);
c[i]=(1LL*c[i-1]*i)%n;
}
for(int i=n-1;i>0;i--)
{
int st=a[i];
int dr=b[i];
while(st<=dr)
{
if(!poz[st])
{
v[st]=c[i];
poz[st]=dr;
}
else
{
st=poz[st];
}
st++;
}
}
for(int i=1;i<n;i++)
{
g<<v[i]<<'\n';
}
return 0;
}