Pagini recente » Cod sursa (job #1502654) | Cod sursa (job #3249481) | Cod sursa (job #279701) | Cod sursa (job #2777378) | Cod sursa (job #491455)
Cod sursa(job #491455)
#include<deque>
#include<cstdio>
#include<fstream>
using namespace std;
#define m 50001
int v[m];
int n,k,ss,st,dr;
void read (){
ifstream in ("secv2.in");
in>>n>>k;
for(int i=1;i<=n;++i){
in>>v[i];
v[i]+=v[i-1];
}
in.close ();
}
void solve (){
st=1,dr=k,ss=v[k];
deque<int> q;
q.push_back(1);
q.push_back(k);
for(int i=k+1;i<=n;++i){
if(v[i]-v[q.front()-1]>ss)
ss=v[i]-v[q.front()-1],q.push_back(i);
for(;(q.front()+k<q.back())&&(ss<=v[q.back()]-v[q.front()]);q.pop_front())
ss=v[q.back()]-v[q.front()];
}
st=q.front(),dr=q.back();
}
int main ()
{
read ();
solve ();
freopen ("secv2.out","w",stdout);
printf("%d %d %d\n",st,dr,ss);
return 0;}