Pagini recente » Cod sursa (job #2769155) | Cod sursa (job #577208) | Cod sursa (job #2784383) | Cod sursa (job #2695491) | Cod sursa (job #1937932)
#include <fstream>
#include <iostream>
#include <string.h>
#define maxn 500001
#define INF 0x3f3f3f3f
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
char s[maxn*4];
int n, v[maxn], deq[maxn], k, x, maxim = -INF, m;
int st = 1, dr;
int main(){
f >> n >> k;
f.getline(s,0);
f.getline(s,maxn*4);
int d = 0, nr = 0, semn = 0, l = strlen(s);
while(d < l){
if(s[d] == ' ') ++d;
else if(s[d] == '-') ++d, semn = 1;
else if(s[d] >= '0' and s[d] <= '9'){
while((s[d] >= '0' and s[d] <= '9')){
nr = nr*10 + (s[d]-48);
++d;
}
if(semn) nr = -nr;
v[++m] = nr;
nr = 0;
semn = 0;
}
}
for(int i=1; i<=n; ++i){
while(st <= dr && v[i] <= v[deq[dr]]) --dr;
deq[++dr] = i;
if(deq[st] == i-k) st++;
if(i >= k && v[deq[st]] > maxim) x = i, maxim = v[deq[st]];
}
g << x - k + 1 << ' ' << x << ' ' << maxim << '\n';
}