Cod sursa(job #2191467)
Utilizator | Data | 2 aprilie 2018 21:02:21 | |
---|---|---|---|
Problema | Secventa 2 | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.29 kb |
#include <fstream>
using namespace std;
ifstream cin("secv2.in");
ofstream cout("secv2.out");
int main()
{
int n,k,sum=0;
cin>>n>>k;
int vec[n];
for(int i=0; i<n; i++)
{
cin>>vec[i];
if(i<k)
sum+=vec[i];
}
int first=0,last=k-1,rf,rl,maxx=0,mij;
for(int i=first; last<n; i++)
{
//cout<<sum<<" "<<first<<" "<<last<<"!\n";
if(sum<1)
{
first=i;
last=first+k-1;
sum=0;
for(int j=first; j<=last; j++)
sum+=vec[j];
}
else
{
if(sum>=maxx)
{
maxx=sum;
rf=first;
rl=last;
}
mij=sum/2;
if(mij<sum+vec[last+1])
{
last++;
sum+=vec[last];
}
else
{
first++;
last=first+k-1;
sum=0;
i=first;
for(int j=first; j<=last; j++)
sum+=vec[j];
}
}
}
if(sum>=maxx)
{
maxx=sum;
rf=first;
rl=last;
}
cout<<rf+1<<" "<<rl+1<<" "<<maxx;
return 0;
}