Pagini recente » Cod sursa (job #2918511) | Cod sursa (job #1041100) | Rezultatele filtrării | Cod sursa (job #1500256) | Cod sursa (job #195923)
Cod sursa(job #195923)
#include <stdio.h>
#include <iostream>
#include <vector>
using namespace std;
#define pb push_back
#define sz size()
#define ff first
#define ss second
const int maxN = 50001;
const int INF = ( 1<<31 );
int N,K;
int sumP[ maxN ];
int subS[ maxN ];
int ST, END, mSUM;
int sM = 0;
int fST;
int main()
{
int el;
#ifdef PC_COMPILE
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
#else
freopen("secv2.in","r",stdin);
freopen("secv2.out","w",stdout);
#endif
mSUM = 0;
fST = 0;
scanf("%d %d\n", &N, &K );
for ( int i = 0; i < N; i++ ) {
scanf("%d\n", &el );
if ( i == 0 ) sumP[i] = el;
else sumP[ i ] = sumP[i-1] + el;
if ( i == K-1 ) {
sM = sumP[ i ];
END = i;
}
if ( i >= K ) {
if ( sumP[ i-K ] < mSUM ) {
mSUM = sumP[ i-K ];
ST = i-K+1;
}
if ( sumP[i] - mSUM > sM ) {
sM = sumP[i] - mSUM;
fST = ST;
END = i;
}
}
//printf("[%d] %d %d %d %d (%d)\n", i, ST, END, sM, mSUM, sumP[i] );
}
printf("%d %d %d\n", fST+1, END+1, sM);
return 0;
}