Pagini recente » Cod sursa (job #1243958) | Cod sursa (job #2690343) | Cod sursa (job #311720) | Cod sursa (job #3272491) | Cod sursa (job #2306530)
#include <bits/stdc++.h>
#define maxn 50000
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
int n, k, v[maxn+2], maxim=INT_MIN, posi, posj;
deque<int>dq;
int main()
{
fin>>n>>k;
for(int i=1; i<=k; i++)
{
fin>>v[i];
v[i]+=v[i-1];
}
if(v[k]>maxim)
{
posi=k;
posj=1;
maxim=v[k];
}
for(int i=k+1; i<=n; i++)
{
fin>>v[i];
v[i]+=v[i-1];
while(!dq.empty()&&v[i-k]<v[dq.back()]) dq.pop_back();
dq.push_back(i-k);
if(v[i]-v[dq.front()]>maxim)
{
maxim=v[i]-v[dq.front()];
posi=i;
posj=dq.front()+1;
}
}
fout<<posj<<' '<<posi<<' '<<maxim<<'\n';
return 0;
}