Cod sursa(job #1968505)
| Utilizator | Data | 17 aprilie 2017 18:48:41 | |
|---|---|---|---|
| Problema | Secventa 2 | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("secv2.in");
ofstream g("secv2.out");
int n,k,v[50002],s[50002],d[50002];
int main()
{
f>>n>>k;
int x;
for(int i=1;i<=n;i++){
f>>v[i];
s[i]=s[i-1]+v[i];
}
int p1=1,p2=1,a,b,best=INT_MIN;
for(int i=1;i<=n-k+1;i++){
if(i==1||d[i-1]<0){
d[i]=v[i];
p1=i;
}
if(d[i-1]>=0){
p2=i;
d[i]=d[i-1]+v[i];
}
if(s[i+k]-s[i]+d[i]>best){
best=s[i+k]-s[i]+d[i];
a=p1;
b=p2+k;
}
}
g<<a<<" "<<b<<" "<<best;
return 0;
}
