Cod sursa(job #2046285)
Utilizator | Isac Lucian IsacLucian | Data | 23 octombrie 2017 17:42:40 |
---|---|---|---|
Problema | Secventa | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.69 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n,k,a[500002];
deque<int>d;
int main()
{
int i,maxim,poz;
fin>>n>>k;
for(i=1;i<=n;i++)
fin>>a[i];
maxim=-30001;poz=0;
for(i=1;i<=n;i++)
{
while(!d.empty() && a[d.back()]>=a[i])
d.pop_back();
d.push_back(i);
if(i-k==d.front())d.pop_front();
if(i>=k)
{
if(maxim<a[d.front()])
{
maxim=a[d.front()];
poz=d.front();
}
}
}
fout<<poz<<" "<<poz+k-1<<" "<<maxim<<"\n";
return 0;
}