Pagini recente » Cod sursa (job #629867) | Cod sursa (job #1628172) | Cod sursa (job #1409921) | Cod sursa (job #106038) | Cod sursa (job #2136978)
#include <iostream>
#include <fstream>
#include <climits>
#define DMAX 50001
using namespace std;
ifstream in("secv2.in");
ofstream out("secv2.out");
int n, k;
long long sumMax, sTemp;
int nr, indDr, indSt;
int coada[DMAX], primul, ultimul;
void rezolvare(){
in >> n >> k;
sumMax = INT_MIN;
sTemp = 0;
nr = 0;
ultimul = 0;
primul = 1;
for(int i = 1; i<= n; i++){
int x;
in >> x;
sTemp += x;
coada[++ultimul] = x;
nr++;
while(nr > k && sTemp - coada[primul] >= sTemp){
sTemp -= coada[primul];
primul ++;
nr--;
}
if(nr >= k && sTemp > sumMax){
sumMax = sTemp;
indDr = i;
indSt = i - nr + 1;
}
}
}
void afisare(){
out << indSt <<' '<<indDr << ' '<< sumMax;
}
int main() {
rezolvare();
afisare();
return 0;
}