Cod sursa(job #2231722)
| Utilizator | Data | 15 august 2018 18:39:56 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#include<bits/stdc++.h>
using namespace std;
#define MAX 6000006
int best[MAX],v[MAX];
int main(){
int n;
cin >> n;
for(int i = 1 ; i <= n ; i++)
cin >> v[i];
int mn = 0,start= 0 ,finish,mx=-int(2e9);
for(int i = 1 ; i <= n ; i ++)
v[i] +=v[i-1];
for(int i = 1 ; i <= n ; i++){
best[i] = v[i] - mn ;
if(mn > v[i]){
mn = v[i];
start = i+1;
}
if(best[i] > mx){
mx = best[i];
finish = i ;
}
}
cout << mx << " " << start << " " << finish ;
}
