Pagini recente » Cod sursa (job #900854) | Cod sursa (job #2258968) | Cod sursa (job #2063258) | Cod sursa (job #3285775) | Cod sursa (job #1896048)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
vector <int> best;
int n, i, l, r, x, s = -0x3f3f3f3f, max_pos, start_pos;
int main()
{
fin >> n;
for(i = 1; i <= n; i++)
{
fin >> x;
if(!best.empty() && x <= best.back() + x)
{
best.push_back(best.back() + x);
++r;
}
else
{
best.clear();
best.push_back(x);
l = i;
r = l;
}
if(s < best.back()){
s = best.back();
max_pos = r;
start_pos = l;
}
if(s == best.back() && r - l < max_pos - start_pos)
{
s = best.back();
max_pos = r;
start_pos = l;
}
}
fout << s << ' ' << start_pos << ' ' << max_pos << '\n';
return 0;
}