Pagini recente » Cod sursa (job #2380926) | Cod sursa (job #46409) | Cod sursa (job #676157) | Cod sursa (job #559322) | Cod sursa (job #3145134)
#include <fstream>
using namespace std;
ifstream cin("ssm.in");
ofstream cout("ssm.out");
const int n = 6000000;
int v[n+2];
int dp[n+2];
int main(){
int length;
int start = 1;
int end = 1;
int temp_start = 1;
cin >> length;
for (int i = 1; i <= length ; i++){
cin >> v[i];
}
long long max_sum = -100000000000000;
for (int i = 1; i <= length; i++){
dp[i] = max(dp[i-1] + v[i], v[i]);
if (dp[i] < 0){
temp_start = i+1;
}
if (dp[i] > max_sum){
if (dp[i] == (dp[i-1] + v[i])){
end = i;
start = temp_start;
} else {
start = i;
temp_start = i;
end = i;
}
max_sum = dp[i];
}
}
cout << max_sum << " " << start << " " << end;
}