Pagini recente » Istoria paginii utilizator/dianapopa | Rating Boje Andrei (H3kapoo) | Istoria paginii utilizator/diana-lavinia | Profil StefaniaHrincu | Cod sursa (job #1793653)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int n, i, j, a[500005];
int fr, bk, dq[500005];
int maxim, ml, mr, k;
char s[3100000];
void citire() {
int w = 0, semn, nr = 0;
f.getline(s, 3099999);
int l = strlen(s);
for (i = 0; i < l;) {
semn = 1, nr = 0;
if (s[i] == '-') semn=-1, i++;
while (s[i] >= '0' && s[i] <= '9')
nr = nr*10 + s[i] - '0', i++;
while (s[i] == ' ') i++;
a[++w] = nr*semn;
}
}
int main() {
f >> n >> k; f.get();
citire();
fr = 1, bk = 0;
for (i = 1; i <= n; i++) {
while (fr <= bk && a[dq[bk]] >= a[i])
bk--;
dq[++bk] = i;
if (dq[fr] == i-k)
fr++;
if (a[dq[fr]] > maxim) {
maxim = a[dq[fr]];
ml = dq[fr];
if (dq[bk] < dq[fr]+k-1)
mr = dq[fr]+k-1;
else mr = dq[bk];
}
}
g << ml << ' ' << mr << ' ' << maxim;
return 0;
}