Pagini recente » Cod sursa (job #1836516) | Cod sursa (job #2832598) | Cod sursa (job #3165951) | Cod sursa (job #415318) | Cod sursa (job #2203851)
#include <fstream>
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
#define DM 50000
int n,k;
int v[DM + 1], sp[DM + 1];
inline int pS(int i, int j) {
return (sp[j] - sp[i - 1]);
}
int main() {
fin >> n >> k;
for(int i = 1; i <= n; i++) {
fin >> v[i];
}
for(int i = 1; i <= n; i++) {
sp[i] = sp[i - 1] + v[i];
}
int maxsum, sum;
sum = maxsum = sp[1];
int lenght = k;
int c1 = 1, c2 = 1;
for(int i = 2; i <= n - k + 1; i++) {
if(sum + v[c1 + lenght] < pS(i, i + k - 1)) {
c1 = i;
lenght = k;
sum = pS(i, i + k - 1);
} else {
sum += v[c1 + lenght];
lenght++;
}
if(sum > maxsum) {
maxsum = sum;
c2 = c1 + lenght - 1;
}
}
fout << c1 << " " << c2 << " " << maxsum;
}