Pagini recente » Cod sursa (job #614747) | Cod sursa (job #2666052) | Cod sursa (job #191254) | Cod sursa (job #257369) | Cod sursa (job #1901087)
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("secv2.in");
ofstream g("secv2.out");
int n,k,pmax,mx=-10000000,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)
{
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<=Back)
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;
}
int mx1=mx;
for(i=pmax; mx && i>0; i--)
mx-=v[i];
g<<i+1<<' '<<pmax<<' '<<mx1;
}