Pagini recente » Cod sursa (job #2672060) | Cod sursa (job #2333935) | Cod sursa (job #186594) | Cod sursa (job #14356) | Cod sursa (job #2909091)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
/*
* vec - vector of elements
* s[k] - the bigest sum vec[i] + vec[i+1]+ ...+ vec[k], i<=k
*
*/
int n,firstIndexOfMaxSum = 0,lastIndexOfMaxSum =0,maxSum =0;
int read(){
in >> n ;
int lastSum = 0;
int lastIndex = 0;
for(int i = 0 ; i < n ; i ++){
int x;
in>>x;
int newSum = lastSum + x;
if(newSum > x){
lastSum = newSum;
}else{
lastSum = x;
lastIndex = i;
}
if(lastSum > maxSum){
maxSum = lastSum;
firstIndexOfMaxSum = lastIndex;
lastIndexOfMaxSum = i;
}
}
return firstIndexOfMaxSum;
}
void output(){
out << maxSum << " " << firstIndexOfMaxSum + 1<< " " << lastIndexOfMaxSum + 1 ;
}
int main() {
read();
output();
return 0;
}