Pagini recente » Cod sursa (job #1043024) | Cod sursa (job #1344522) | Cod sursa (job #2914341) | Cod sursa (job #339495) | Cod sursa (job #1901036)
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("secv2.in");
ofstream g("secv2.out");
int n,k,pmax,mx=-100000,v[50000],s[50000],i;
int Deque[50000],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[Front]>0)
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];
}
Deque[++Back]=i;
}
g<<mx<<' ';
for(i=pmax;mx && i;i--)
mx-=v[i];
g<<i+1<<' '<<pmax;
}