Pagini recente » Diferente pentru problema/keymess intre reviziile 46 si 51 | Cod sursa (job #1075687) | Cod sursa (job #410378) | Cod sursa (job #3163381) | Cod sursa (job #3309365)
//var dinamica
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("secv2.in");
ofstream fout ("secv2.out");
int v[6000003], s[6000003];
int main(){
int n, k;
fin >> n >> k;
for (int i = 1; i <= n; i++){
fin >> v[i];
s[i] = s[i-1]+v[i];
}
int best = v[1], st, dr, j=1, minsum=100000000, sum=-1000000000000;
for (int i = k; i <= n; i++){
minsum = min(minsum, s[i-k]);
if (minsum==s[i-k]){
j=i-k+1;
}
sum=s[i]-minsum;
if (sum >= best){
best = sum;
st = j;
dr = i;
}
best = max(best, sum);
}
fout << st << " " << dr << " " << best;
return 0;
}