Pagini recente » Diferente pentru algoritmiada-2013 intre reviziile 17 si 1 | Cod sursa (job #1932761) | Monitorul de evaluare | Diferente pentru problema/electoral intre reviziile 24 si 9 | Cod sursa (job #1760538)
#include<bits/stdc++.h>
#define in f
#define out g
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int main() {
vector<int> nums;
int n;
in >> n;
for(int i = 0; i < n; i++) {
int x;
in >> x;
nums.push_back(x);
}
int maxx = nums[0];
int prev = nums[0];
int start = 0;
int fin = 0;
for(int i = 1; i < nums.size(); i++) {
prev = max(prev + nums[i], nums[i]);
if(prev < 0) {
start = i + 1;
}
if(prev > maxx) {
fin = i;
}
maxx = max(maxx, prev);
}
out << maxx <<" "<< ++start << " " << ++fin;
return 0;
}