Pagini recente » Cod sursa (job #2391957) | Cod sursa (job #1061281) | Cod sursa (job #3259472) | Cod sursa (job #1169228) | Cod sursa (job #2549316)
#include <iostream>
#include <fstream>
#include <deque>
std::ifstream f("secv2.in");
std::ofstream g("secv2.out");
const int NMAX = 50'005;
int n,k,v[NMAX],s[NMAX],maxx,I,J;
std::deque<int>d;
int main(){
f >> n >> k;
for(int i = 1;i <= n;++i){
f >> v[i];
s[i] = s[i - 1] + v[i];
}
d.push_back(1);
for(int i = 2;i <= n;++i){
while(!d.empty() && s[i] <= s[d.back()])
d.pop_back();
d.push_back(i);
if(s[i] - s[d.front()] > maxx && i - d.front() + 1 >= k){
maxx = s[i] - s[d.front()];
I = d.front() + 1;
J = i;
}
}
g << I << ' ' << J << ' ' << maxx;
return 0;
}