Pagini recente » Cod sursa (job #857722) | Cod sursa (job #245395) | Cod sursa (job #2398180) | Cod sursa (job #380205) | Cod sursa (job #1901949)
#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++)
{
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];
}
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++;
}
int mx1=mx;
int cnt=1,j;
for(i=pmax;i>0;i--,cnt++)
{
mx-=v[i];
if(!mx && cnt>=k)
j=i;
}
g<<j<<' '<<pmax<<' '<<mx1;
}