Cod sursa(job #2504869)
Utilizator | Data | 5 decembrie 2019 18:17:49 | |
---|---|---|---|
Problema | Secventa | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 kb |
#include <bits/stdc++.h>
using namespace std;
int n,k,v[500003],maxim=-500003,p1,p2;
deque <int> ch;
ifstream fin ("secventa.in");
ofstream fout ("secventa.out");
int main () {
fin>>n>>k;
for(int i=1;i<=n;++i)
fin>>v[i];
for(int i=1;i<=n;++i) {
while(ch.size()>0 && v[ch.front()]>v[i])
ch.pop_back();
ch.push_back(i);
while(i-ch.front()+1>k)
ch.pop_front();
if(i-ch.front()+1==k && maxim<v[ch.front()])
p1=ch.front(),p2=i,maxim=v[ch.front()];
}
fout<<p1<<" "<<p2<<" "<<maxim;
return 0;
}