Pagini recente » Cod sursa (job #1660053) | Cod sursa (job #3039883) | Cod sursa (job #2381792) | Cod sursa (job #1857743) | Cod sursa (job #2189466)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
vector<int> list;
int size, maxsum, st, dr;
int main() {
in>>size;
list.resize(size);
in>>list[0];
maxsum = list[0];
for(int x = 1; x<size; x++)
in>>list[x];
for(int x = 0, y = 1, sum = list[0]; y<size; y++) {
if((sum+list[y])<list[y]) {
x = y;
sum = list[y];
}
else
sum+=list[y];
if((sum>maxsum)||((sum==maxsum)&&((x<st)||((x==st)&&((y-x)>(dr-st)))))) {
maxsum = sum;
st = x;
dr = y;
}
}
out<<maxsum<<' '<<st + 1<<' '<<dr + 1;
}