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