Cod sursa(job #2693321)
Utilizator | Data | 5 ianuarie 2021 14:59:49 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.62 kb |
#include <fstream>
#define nmax 6000000
using namespace std;
ifstream cin("ssm.in");
ofstream cout("ssm.out");
int main(){
int arr[nmax + 1], sum = -1, sumMax = 0, low, high, start, numbers;
cin >> numbers;
for(int i = 1; i <= numbers; ++i){
cin >> arr[i];
}
for(int i = 1; i <= numbers; ++i){
if(sum < 0){
sum = 0;
start = i;
}
sum += arr[i];
if(sum > sumMax){
sumMax = sum;
low = start;
high = i;
}
}
cout << sumMax << " " << low << " " << high;
return 0;
}