Pagini recente » Cod sursa (job #128808) | Cod sursa (job #2848573) | Cod sursa (job #2617692) | Cod sursa (job #2219332) | Cod sursa (job #2266444)
#include <fstream>
#include<deque>
#include <climits>
using namespace std;
ifstream INPUT_FILE("secventa.in");
ofstream OUTPUT_FILE("secventa.out");
deque<int>d;
int n,k;
int main() {
int bazaMaxima=INT_MIN,st,dr;
st=dr=-1;
INPUT_FILE>>n>>k;
int elem[n];
for(int i=0;i<n;++i){
INPUT_FILE>>elem[i];
while(!d.empty() && elem[i]<=elem[d.back()]) d.pop_back();
d.push_back(i);
if (i > k)
{
while(!d.empty() && i-d.front()>=k) d.pop_front();
if(elem[d.front()] > bazaMaxima) {
bazaMaxima = elem[d.front()];
st = i - k + 2;
dr = i+1;
}
}
}
OUTPUT_FILE<<st<<" "<<dr<<" "<<bazaMaxima;
return 0;
}