Pagini recente » Cod sursa (job #1401248) | Cod sursa (job #2603014) | Cod sursa (job #1767797) | Monitorul de evaluare | Cod sursa (job #3309359)
//var dinamica
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("secv2.in");
ofstream fout ("secv2.out");
int v[6000003], smax[6000003];
int main(){
int n, k;
fin >> n >> k;
for (int i = 1; i <= n; i++){
fin >> v[i];
smax[i] = max(v[i], smax[i - 1] + v[i]);
}
int best = v[1], st, dr, x=1;
for (int i = k; i <= n; i++){
if (smax[i] == v[i] && smax[i-1]<0)
x = i;
if (smax[i] >= best && i-x>=k+1){
best = smax[i];
st=x;
dr = i;
}
best = max(best, smax[i]);
}
fout << best << " " << st << " " << dr;
return 0;
}
///0 -6 2 3 7 6 9 4