Pagini recente » Cod sursa (job #2630195) | Cod sursa (job #2520630) | Cod sursa (job #58588) | Cod sursa (job #2108191) | Cod sursa (job #1519188)
#include <fstream>
#include <cstring>
#define DIM 500010
using namespace std;
int v[DIM];
int D[DIM];
char s[20000010];
int n, m, k, semn, val, i, p, u, sol, st, dr;
int main() {
ifstream fin ("secventa.in");
ofstream fout("secventa.out");
fin>>n>>k;
fin.get();
fin.get(s, 20000000);
for (i=0;s[i]!=0;i++) {
if (s[i] == '-') {
semn = -1;
continue;
}
if (s[i] == '+') {
semn = 1;
continue;
}
if (s[i] >= '0' && s[i] <= '9') {
val = val*10 + s[i]-'0';
continue;
}
if (s[i] == ' ' && ( s[i-1] >= '0' && s[i-1] <= '9' )) {
v[++m] = val * semn;
val = 0;
semn = 1;
}
}
if (s[ strlen(s)-1 ] >= '0' && s[ strlen(s)-1 ]<='9') {
v[++m] = val * semn;
}
p = 1;
u = 0;
for (i=1;i<=n;i++) {
while (p <= u && v[i] < v[ D[u] ])
u--;
D[++u] = i;
if (i-D[p] == k)
p++;
if(i >= k && v[ D[p] ] > sol) {
sol = v[ D[p] ];
st = i-k+1;
dr = i;
}
}
fout<<st<<" "<<dr<<" "<<sol;
return 0;
}