Pagini recente » Cod sursa (job #1115741) | Cod sursa (job #1510231) | Cod sursa (job #1005917) | Cod sursa (job #2105439) | Cod sursa (job #2956339)
#include <fstream>
#define NMAX 1000003
using namespace std;
ifstream f("curcubeu.in");
ofstream g("curcubeu.out");
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;
for(int i=2;i<n;i++)
{
a[i]=(a[i-1]*i)%n;
b[i]=(b[i-1]*i)%n;
if(a[i]>b[i])
swap(a[i],b[i]);
c[i]=(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(!v[st])
{
v[st]=c[i];
poz[st]=dr+1;
st++;
}
else
{
int st1=st;
st=poz[st]+1;
poz[st1]=max(poz[st1],dr+1);
}
poz[st]=max(poz[st],dr+1);
}
}
for(int i=1;i<n;i++)
{
g<<v[i]<<'\n';
}
return 0;
}