Pagini recente » Cod sursa (job #1702837) | Cod sursa (job #1320405) | Cod sursa (job #835339) | Cod sursa (job #1637156) | Cod sursa (job #1181907)
#include<fstream>
#include<iostream>
#define nmax 500009
using namespace std;
ifstream in("secventa.in");
ofstream out("secventa.out");
int sol = -40000,v[nmax],deq[nmax],k,front,back,n,x1,x2,x3;
int main()
{
in>>n>>k;
int i;
for(i = 1 ; i <= n ; i++)
in>>v[i];
front = 1;
back = 0;
for(i = 1 ; i <= n ; i++)
{
x3 = deq[back]-1;
while(front <= back && v[i] <= v[deq[back]])
--back;
deq[++back] = i;
if(deq[front] == i-k) front++;
if(deq[front] >= k) {
if(v[deq[front]] > sol){
sol = v[deq[front]];
x1 = x3;
x2 = deq[front];
}
}
}
out<<x1<<" "<<x2<<" "<<sol;
out.close();
in.close();
return 0;
}