Pagini recente » Cod sursa (job #702802) | Cod sursa (job #2810473) | Cod sursa (job #396753) | Cod sursa (job #1097867) | Cod sursa (job #46336)
Cod sursa(job #46336)
#include <fstream>
#include <iostream>
using namespace std;
ifstream in("secv2.in");
ofstream out("secv2.out");
int n, a[50000], k;
void read()
{
in >> n >> k;
for ( int i = 0; i < n; ++i )
in >> a[i];
}
int main()
{
read();
int s = -2147483647, tmp = 0;
int start = 0, stop = 0;
int toate_minus = 0;
for ( int i = 0; i < n; ++i )
if ( a[i] > 0 )
{
toate_minus = 1;
break;
}
for( int i = 0, j = 0; j < n; j++ )
{
tmp += a[j];
if( tmp > s && abs(j-i)+1 >= k )
{
s = tmp;
start = i;
stop = j;
}
else if( !toate_minus )
{
if ( tmp < -2147483647 )
{
i = j + 1;
tmp = 0;
}
}
else if ( tmp < 0 )
{
i = j + 1;
tmp = 0;
}
}
out << start+1 << " " << stop+1 << " " << s << endl;
return 0;
}