Pagini recente » Cod sursa (job #2076467) | Cod sursa (job #1037046) | Istoria paginii runda/training_day_7 | Cod sursa (job #2377069) | Cod sursa (job #1172129)
#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,inceput,sfarsit;
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=n-1;i>=1;i--)
{
inceput=min(l[i].a,l[i].b);
sfarsit=max(l[i].a,l[i].b);
for (j=inceput;j<=sfarsit;j++)
{
while (NEXT[j] && j<=sfarsit)
j=NEXT[j];
if (j<=sfarsit)
{
v[j]=l[i].c;
NEXT[j]=sfarsit+1;
}
}
}
for (i=1;i<=n-1;i++)
fout<<v[i]<<"\n";
return 0;
}