Cod sursa(job #1898560)
| Utilizator | Data | 2 martie 2017 09:34:04 | |
|---|---|---|---|
| Problema | Secventa | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.75 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
const int N=500005;
int D[N], In[N], mx=-300005, mxf, mxb, x, b, f, n, k;
int main()
{
fin>>n>>k;
b=1;
for(int i=1;i<=k;i++)
{
fin>>x;
while(D[f]>x&&f)
f--;
f++;
D[f]=x;
In[f]=i;
}
for(int i=k+1;i<=n;i++)
{
fin>>x;
while(i-In[b]>=k)
b++;
while(D[f]>x&&f>=b)
f--;
f++;
D[f]=x;
In[f]=i;
if(D[b]>mx)
{
mx=D[b];
mxb=i-k+1;
mxf=i;
}
}
fout<<mxb<<" "<<mxf<<" "<<mx;
return 0;
}
