Pagini recente » Cod sursa (job #2019292) | Cod sursa (job #2785800) | Cod sursa (job #2019118) | Cod sursa (job #2765673) | Cod sursa (job #1718451)
#include <bits/stdc++.h>
using namespace std;
deque<int>q;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
int a[500005],n,k,p=0,b[1006];
void Citire()
{
int i;
fin>>n>>k;
for(i=1;i<=n;i++)
fin>>a[i];
}
void Formare()
{
int i;
for(i=1;i<=n;i++)
a[i]=a[i-1]+a[i];
}
int main()
{
int i,inceput,sfarsit,x;
long long summax=-1250000001;
Citire();
Formare();
if(k==n)
{
fout<<"1"<<" "<<n<<" "<<a[n]<<"\n";
return 0;
}
for(i=1;i<=n;i++)
{
x=a[i];
while(!q.empty() and a[q.back()]>=x)
q.pop_back();
q.push_back(i);
if(summax<=a[i]-a[q.front()] and i-q.front()>=k)
{
summax=a[i]-a[q.front()];
inceput=q.front()+1;
sfarsit=i;
}
}
if(summax==-1250000001)
{
fout<<"1"<<" "<<k+1<<" "<<a[k+1]<<"\n";
return 0;
}
else fout<<inceput<<" "<<sfarsit<<" "<<summax<<"\n";
fin.close();
fout.close();
}