Pagini recente » Cod sursa (job #2193343) | Cod sursa (job #1306612) | Cod sursa (job #1243269) | Cod sursa (job #1751720) | Cod sursa (job #2472267)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
int n,k,partial_sums[50005],minimum[50005],poz_minimum[50005];
struct secv
{
int lenght, initial_position, final_position;
}maximum;
void read()
{
fin>>n>>k;
int x;
fin>>x;
partial_sums[1]=x;
minimum[1]=x;
poz_minimum[1]=1;
for(int i=2;i<=n;i++)
{
fin>>x;
partial_sums[i]=x+partial_sums[i-1];
if(minimum[i-1]<partial_sums[i])
minimum[i]=minimum[i-1], poz_minimum[i]=poz_minimum[i-1];
else
minimum[i]=partial_sums[i], poz_minimum[i]=i;
}
}
void solve()
{
for(int i=k;i<=n;i++)
if(partial_sums[i]-minimum[i-k+1]>maximum.lenght)
{
maximum.lenght=partial_sums[i]-minimum[i-k+1];
maximum.initial_position=poz_minimum[i-k+1]+1;
maximum.final_position=i;
}
fout<<maximum.initial_position<<" "<<maximum.final_position<<" "<<maximum.lenght;
}
int main()
{
read();
solve();
return 0;
}