Pagini recente » Cod sursa (job #2438230) | Cod sursa (job #1021734) | Cod sursa (job #1086256) | Cod sursa (job #665393) | Cod sursa (job #1901122)
#include <iostream>
#include<fstream>
#define N 500010
using namespace std;
ifstream f("secv2.in");
ofstream g("secv2.out");
int n,k,pmax,mx=-150000000,v[N],s[N],i;
int Deque[N],Front,Back;
int main()
{
f>>n>>k;
for(i=1; i<=n; i++)
{
f>>v[i];
s[i]=s[i-1]+v[i];
}
Front=1;
Back=0;
for(i=1; i<=n; i++)
{
Deque[++Back]=i;
if(Deque[Back]-Deque[Front]+1>=k)
if(s[Deque[Back]]-s[Deque[Front]-1] > mx)
{
mx=s[Deque[Back]]-s[Deque[Front]-1];
pmax=Deque[Back];
}
while(s[Deque[Back]]-s[Deque[Front]-1]<0 && Back-Front+1>=k)
Front++;
if(Deque[Back]-Deque[Front]+1>=k)
if(s[Deque[Back]]-s[Deque[Front]-1] > mx)
{
mx=s[Deque[Back]]-s[Deque[Front]-1];
pmax=Deque[Back];
}
}
int mx1=mx;
for(i=pmax; mx && i>0; i--)
mx-=v[i];
g<<i+1<<' '<<pmax<<' '<<mx1;
}