Cod sursa(job #1804464)
Utilizator | Data | 12 noiembrie 2016 16:45:37 | |
---|---|---|---|
Problema | Secventa | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.68 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n,k,i,vf,bz,maxim,dq[1000000],inc,sf,nr,a[500010];
int main()
{
fin>>n>>k;
maxim=-2000000000;
vf=-1;
for (i=1; i<=n; i++)
{
fin>>a[i];
while (vf>=bz&&a[dq[vf]]>a[i])
vf--;
dq[++vf]=i;
if (dq[bz]<=i-k)
bz++;
if (a[dq[bz]]>maxim)
{
maxim=a[dq[bz]];
nr=dq[bz];
}
}
sf=nr;
inc=nr;
while (inc>1&&a[inc-1]>=a[nr])
inc--;
sf=inc+k-1;
fout<<inc<<' '<<sf<<' '<<maxim<<'\n';
return 0;
}