Pagini recente » Cod sursa (job #514279) | solutie/nrchei | Cod sursa (job #1372262) | Cod sursa (job #338811) | Cod sursa (job #1226553)
#include <iostream>
#include <fstream>
#include <deque>
#include <cstring>
#define nmax 500005
using namespace std;
int n, k, l, r, x=1, sol=-nmax, v[nmax];
deque <int> D;
string s;
int main() {
ifstream f("secventa.in");
ofstream g("secventa.out");
f>>n>>k;
f.get();
getline(f, s);
for(int i=0; i<int(s.size()); i++)
if(s[i] != ' ') v[x] = v[x] * 10 + int(s[i]) - 48;
else ++x;
for(int i=1; i<=n; i++) {
while(!D.empty() && v[D.back()] >= v[i]) D.pop_back();
D.push_back(i);
if(i >= k) {
if(D.front() + k <= i) D.pop_front();
if(v[D.front()] > sol) {
sol = v[D.front()];
r = i;
}
}
}
l = r;
while(l>1 && v[l-1] >= sol) l--;
g<<l<<" "<<r<<" "<<sol<<"\n";
return 0;
}