Pagini recente » Cod sursa (job #1172141) | Cod sursa (job #2836552) | Cod sursa (job #788145) | Cod sursa (job #840950) | Cod sursa (job #1172085)
#include<fstream>
using namespace std;
struct intervale
{
int a,b,c;
};
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
int n;
intervale l[1000005];
int NEXT[1000005],v[1000005];
int main()
{
int i,j;
fin>>n>>l[1].a>>l[1].b>>l[1].c;
for (i=2;i<=n-1;i++)
{
l[i].a=(1LL*l[i-1].a*i)%n;
l[i].b=(1LL*l[i-1].b*i)%n;
l[i].c=(1LL*l[i-1].c*i)%n;
}
for (i=l[n-1].a;i<=l[n-1].b;i++)
{
v[i]=l[n-1].c;
NEXT[i]=l[n-1].b+1;
}
for (i=n-2;i>=1;i--)
for (j=l[i].a;j<=l[i].b;j++)
{
while (NEXT[j])
j=NEXT[j];
v[j]=l[i].c;
NEXT[j]=l[i].b+1;
}
for (i=1;i<=n-1;i++)
fout<<v[i]<<"\n";
return 0;
}