Pagini recente » Cod sursa (job #2008814) | Cod sursa (job #3177568) | Cod sursa (job #2016517) | Cod sursa (job #2230940) | Cod sursa (job #1209521)
#include<iostream>
#include<fstream>
#include<deque>
#include<utility>
#include<algorithm>
#define NMAX 500010
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
deque<pair<int, int> > d;
int main(){
int i;
int a, n, k;
fin>>n>>k;
int f, fi;
fi = 1;
fin>>a;
d.push_back( make_pair(a,0) );
for(i = 1; i< k; i++){
fin>>a;
pair<int, int> p;
p = make_pair(a,i);
while (!d.empty() && a <= d.back().first) {
d.pop_back();
}
d.push_back(p);
}
int bM = d.front().first;
int bidx = 0;
for(;i<n; i++){
fin>>a;
while(!d.empty() && a <= d.back().first){
d.pop_back();
}
d.push_back( make_pair(a,i) );
while (d.front().second <= i-k) d.pop_front();
if(d.front().first > bM){
bM = d.front().first;
bidx = d.front().second;
}
}
fout<<bidx + 1<<" "<<bidx + k<<" "<<bM;
}