Pagini recente » Borderou de evaluare (job #3331224) | Cod sursa (job #751222) | Borderou de evaluare (job #2505823) | Cod sursa (job #3356068) | Cod sursa (job #3357253)
#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, q;
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=1; j<n; j++)
{
cout<<v[j]<<" ";
}
cout<<"\n";*/
while(mini<=maxi)
{
if(!v[mini])
{
v[mini]=c1;
q=aux[mini];
if(aux[mini]<=aux[maxi])
aux[mini]=aux[maxi];
mini=q;
}
else
{
mini=aux[mini];
}
//cout<<mini<<" ";
}
}
for(int i=1; i<n; i++)
{
fout<<v[i]<<"\n";
}
return 0;
}