Cod sursa(job #1846611)
| Utilizator | Data | 13 ianuarie 2017 17:26:01 | |
|---|---|---|---|
| Problema | Secventa 2 | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.72 kb |
#include <bits/stdc++.h>
using namespace std;
const int N=50005;
int v[N],d[N],s[N],last[N];
int main()
{
freopen("secv2.in","r",stdin);
freopen("secv2.out","w",stdout);
int i,n,k,x,Max=-(1<<30),In,Sf,Sum;
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++){
scanf("%d",&x);
s[i]=s[i-1]+x;
if(x>=d[i-1]+x){
d[i]=x;
last[i]=i;
}
else{
d[i]=d[i-1]+x;
last[i]=last[i-1];
}
if(i<k) continue;
Sum=s[i]-s[i-k+1]+d[i-k+1];
if(Sum>Max){
Max=Sum;
In=last[i-k+1];
Sf=i;
}
}
printf("%d %d %d\n",In,Sf,Max);
return 0;
}
