Pagini recente » Monitorul de evaluare | Cod sursa (job #2125440) | Cod sursa (job #2103196) | Cod sursa (job #1994989) | Cod sursa (job #2015949)
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
ifstream in ("secv2.in");
ofstream out ("secv2.out");
int const nmax = 50000;
int v[1 + nmax];
queue <int> q;
int main()
{
int n ,k;
in>>n>>k;
int smax ,st = 1, dr = k;
int a , sum = 0;
int rebootsum = 0 ,elmboot = 0;
for(int i = 1 ;i <= n ;i++)
in>>v[i];
for(int i = 1 ; i <= k;i++){
q.push(v[i]);
sum += v[i];
}
smax = sum;
for(int i = k + 1 ; i <= n ;i++){
rebootsum += q.front();
elmboot++;
q.pop();
q.push(v[i]);
sum += v[i];
if(rebootsum <= 0){
elmboot = 0;
sum -= rebootsum;
rebootsum = 0;
}
if(smax < sum){
smax = sum;
st = i - k - elmboot + 1;
dr = i;
}
}
out<<st<<" "<<dr<<" "<<smax<<'\n';
return 0;
}