Cod sursa(job #2931816)
| Utilizator | Data | 31 octombrie 2022 23:10:45 | |
|---|---|---|---|
| Problema | Curcubeu | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.73 kb |
#include <fstream>
using namespace std;
long long A[1000005],B[1000005],C[1000005];
int v[1000005],ans[1000005];
int main()
{
ifstream cin("curcubeu.in");
ofstream cout("curcubeu.out");
int n;
cin>>n>>A[1]>>B[1]>>C[1];
for(int i=2;i<n;i++)
{
A[i]=(A[i-1]*i)%n;
B[i]=(B[i-1]*i)%n;
C[i]=(C[i-1]*i)%n;
}
for(int i=n-1;i>0;i--)
{
int st=min(A[i],B[i]),dr=max(A[i],B[i]);
for(int j=st;j<=dr;j++)
{
if(v[j]!=0)
j=v[j];
else
{
v[j]=dr;
ans[j]=C[i];
}
}
}
for(int i=1;i<n;i++)
cout<<ans[i]<<"\n";
return 0;
}
