Pagini recente » Cod sursa (job #2110744) | Cod sursa (job #213832) | Cod sursa (job #1289320) | Cod sursa (job #1187008) | Cod sursa (job #1161625)
#include <fstream>
#include <deque>
#include <cstring>
using namespace std;
ifstream is("secv2.in");
ofstream os("secv2.out");
int n, k, a[50001], s[50001];
int be, en, ma = -0x3f3f3f3f;
char d[3500005];
deque<int> q;
void READ();
int main()
{
READ();
int st = 1, dr = k, sum = s[k];
for ( int i = k + 1; i <= n; ++i )
{
if ( s[i] - s[i - k] > sum + a[i] )
{
sum = s[i] - s[i - k];
st = i - k + 1;
dr = i;
}
else
{
sum += a[i];
++dr;
}
if ( sum > ma )
{
ma = sum;
be = st;
en = dr;
}
}
os << be << " " << en << " " << ma;
is.close();
os.close();
return 0;
}
void READ()
{
is >> n >> k;
is.get();
is.getline(d, 3500005, '\n');
int m = strlen(d) - 1;
int cnt = 1, semn;
for ( int i = 0; i <= m; ++i )
{
semn = 1;
if ( d[i] == '-' )
{
semn = -1;
++i;
}
while ( d[i] != ' ' && i <= m )
{
a[cnt] = a[cnt] * 10 + ( d[i] - '0' );
++i;
}
a[cnt] *= semn;
s[cnt] = s[cnt - 1] + a[cnt];
++cnt;
}
}