Pagini recente » Cod sursa (job #2196943) | Cod sursa (job #1305213) | Cod sursa (job #1177612) | Cod sursa (job #1947137) | Cod sursa (job #2217824)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("secv2.in");
ofstream out("secv2.out");
long long c[50005], t[50005], v[50005];
long long mx = 0, d = 0, sum = 0;
int main()
{
long long n, k;
in >> n >> k;
mx = v[1];
for(long long i = 1; i <= n; i++){
in >> v[i];
t[i] = t[i-1] + v[i];
}
long long mn = 1000000000;
for(long long i = k; i <= n; i++){
mn = min(mn, t[i-k]);
c[i] = max(c[i-1], t[i] - mn);
}
for(long long i = k; i <= n; i++)
mx = max(mx, c[i]);
for(long long i = k; i <= n; i++){
if(c[i] == mx){
d = i;
break;
}
}
long long s = d;
while(sum >= 0 && sum != mx || d - s + 1 < k){
sum += v[max(1LL * 0,s)];
s --;
}
if(k == n)
out << "1 " << d << " " << t[n];
else
out << s + 1 << " " << d << " " << mx;
return 0;
}