Pagini recente » Cod sursa (job #2342237) | Cod sursa (job #1135017) | Cod sursa (job #397861) | Cod sursa (job #751616) | Cod sursa (job #3133855)
#include <fstream>
#include <vector>
std::ifstream fin("ssm.in");
std::ofstream fout("ssm.out");
std::vector<int> arr;
int main(){
int n;
fin >> n;
arr = std::vector<int> (n);
int mx = INT_MIN, ok = 0, poz;
for(int i = 0; i < n; i++){
fin >> arr[i];
if(arr[i] >= 0)
ok = 1;
if(mx < arr[i]){
mx = arr[i], poz = i;
}
}
if(!ok){
fout << mx << " " << poz + 1 << " " << poz + 1; return 0;
}
long long int mx_sum = 0, curr_sum = 0, mx_left = 0, mx_right = 0, left = 0;
for(int i = 0; i < n; i++){
curr_sum += arr[i];
if(curr_sum < 0){
left = i + 1;
curr_sum = 0;
}
if(mx_sum < curr_sum){
mx_left = left, mx_right = i;
mx_sum = curr_sum;
}
}
fout << mx_sum << " " << mx_left + 1 << " " << mx_right + 1;
}