Pagini recente » Cod sursa (job #2786198) | Cod sursa (job #1063550) | Cod sursa (job #1879948) | Cod sursa (job #1548791) | Cod sursa (job #2569155)
#include <fstream>
#include <deque>
#include <climits>
#define N 50001
using namespace std;
ifstream f ( "secv2.in" );
ofstream g ( "secv2.out" );
deque < int > dq;
int v[N];
int main()
{ int n, i, Max = INT_MIN, k, start, finish;
f >> n >> k;
for ( i = 1 ; i <= n; i++ ){
f >> v[i];
v[i] += v[i - 1];
if ( i - dq.front ( ) >= k && Max < v[i] - v[dq.front ( )] ){
Max = v[i] - v[dq.front( )];
start = dq.front ( ) + 1;
finish = i;
}
while ( !dq.empty ( ) && v[dq.back ( )] > v[i] )
dq.pop_back ( );
dq.push_back ( i );
}
g << start << ' ' << finish << ' ' << Max;
}