Pagini recente » Cod sursa (job #426072) | Borderou de evaluare (job #2096425) | Cod sursa (job #3336489) | Cod sursa (job #3313728) | Cod sursa (job #3357252)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
long long v[1000000], n, a, b, c, f[1000000], aux[1000000], a1, b1, c1, mini, maxi;
int main()
{
fin>>n>>a>>b>>c;
f[1]=1;
for(int i=2; i<n; i++)
{
f[i]=f[i-1]*i;
f[i]%=n;
}
for(int i=0; i<=n; i++)
{
aux[i]=i+1;
}
for(int i=n-1; i>=0; i--)
{
a1=f[i]*a;
a1%=n;
b1=f[i]*b;
b1%=n;
c1=f[i]*c;
c1%=n;
mini=min(b1, a1);
maxi=max(b1, a1);
/*for(int j=0; j<=n; j++)
{
cout<<aux[j]<<" ";
}
cout<<"\n";*/
while(mini<=maxi)
{
if(!v[mini])
{
v[mini]=c1;
mini=aux[mini];
if(mini<=maxi)
aux[mini]=aux[maxi];
}
else
{
mini=aux[mini];
}
//cout<<mini<<" ";
}
}
for(int i=1; i<n; i++)
{
fout<<v[i]<<"\n";
}
return 0;
}