Pagini recente » Statistici militaru adrian (militaru.adrian) | Cod sursa (job #1542734) | Cod sursa (job #1094837) | Cod sursa (job #2516219) | Cod sursa (job #1347632)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
int s[100001];
deque<int> coada;
int main()
{
ifstream in("secv2.in");
ofstream out("secv2.out");
int i,n,k,suma=0,sumamax=-2000000000,x,y,cateelimin=0;
in>>n;
in>>k;
for (i=1;i<=n;i++)
{
in>>s[i];
}
for (i=1;i<=n;i++)
{
coada.push_back(i);
suma+=s[i];
if (coada.back()-coada.front()+1>=k)
{
if (suma<0)
{
cateelimin=coada.back()-coada.front()+1;
}
if (suma>sumamax)
{
sumamax=suma;
x=coada.front();
y=coada.back();
}
while (cateelimin>0&&coada.back()-coada.front()+1>=k)
{
cateelimin--;
suma-=s[coada.front()];
coada.pop_front();
if (coada.back()-coada.front()+1>=k&&suma>sumamax)
{
sumamax=suma;
x=coada.front();
y=coada.back();
}
}
}
}
out<<x<<" "<<y<<" "<<sumamax;
}