Pagini recente » CLASAMENTUL!! | Monitorul de evaluare | Statistici Vasiloiu Bogdan (vasyy) | Monitorul de evaluare | Cod sursa (job #1714456)
#include <cstdio>
#define NMax 50005
#define DIM 10000
#define INF 1<<30
char buff[DIM];
int poz=0;
int sum[NMax];
int v[NMax];
void citeste(int &numar)
{
numar = 0;
char semn='+';
while (buff[poz] < '0' || buff[poz] > '9')
{
semn = buff[poz];
if (++poz == DIM)
fread(buff,1,DIM,stdin),poz=0;
}
while ('0'<=buff[poz] && buff[poz]<='9')
{
numar = numar*10 + buff[poz] - '0';
if (++poz == DIM)
fread(buff,1,DIM,stdin),poz=0;
}
if (semn == '-')
numar = -numar;
}
int main(){
freopen("secventa2.in","r",stdin);
freopen("secventa2.out","w",stdout);
int pos,inc,sf,i,ans,minim=INF,n,k;
scanf("%d %d",&n,&k);
for( i = 1; i <= n; ++i )
{
citeste( v[i] );
sum[i] = sum[i-1] + v[i];
}
ans = sum[k];
inc = 1;
sf = k;
for( i = k + 1; i <= n; ++i )
{
if(minim > sum[i-k]) { minim = sum[i-k]; pos = i - k + 1; }
if( sum[i] - minim > ans ) { inc = pos; sf = i; ans = sum[i] - minim; }
}
printf("%d %d %d\n",inc,sf,ans);
return 0;
}