Cod sursa(job #2351462)
| Utilizator | Data | 22 februarie 2019 13:31:49 | |
|---|---|---|---|
| Problema | Curcubeu | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 1.04 kb |
#include <fstream>
using namespace std;
ifstream cin("curcubeu.in");
ofstream cout("curcubeu.out");
typedef long long ll;
const int N=(int)1e6+7;
int n;
int st[N];
int dr[N];
int kol[N];
int res[N];
int nxt[N];
int main()
{
cin>>n;
cin>>st[1]>>dr[1]>>kol[1];
for(int i=2;i<n;i++)
{
st[i]=st[i-1]*(ll)i%n;
dr[i]=dr[i-1]*(ll)i%n;
kol[i]=kol[i-1]*(ll)i%n;
}
for(int i=1;i+1<n;i++)
{
nxt[i]=i+1;
}
for(int i=n-1;i>=1;i--)
{
if(st[i]>dr[i]) swap(st[i],dr[i]);
for(int j=st[i];j<=dr[i];j=nxt[j])
{
if(res[j]==0)
{
res[j]=kol[i];
nxt[j]=dr[i]+1;
}
}
}
for(int i=1;i<n;i++)
{
cout<<res[i]<<"\n";
}
return 0;
}
