Pagini recente » Cod sursa (job #1902673) | Cod sursa (job #429357) | Cod sursa (job #1064297) | Cod sursa (job #3221463) | Cod sursa (job #914860)
Cod sursa(job #914860)
/*
* ssm.cpp
* Subsecventa de suma maxima
*
* Created on: Mar 14, 2013
* Author: Paulichesh
*/
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int *v,n;
int main()
{
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
fin >> n;
v = new int[n];
//seq = new int[n];
for (int i = 0; i < n; i++) {
fin >> v[i];
}
int sum = v[0],best = v[0],st=0,dr=0,st_prim =0,dr_prim=0;
for(int i=1; i<n; i++)
{
if(sum + v[i] >= v[i])
{
sum += v[i];
dr_prim = i;
}
else
{
sum = v[i];
st_prim = i;
}
if(best < sum)
{
best = sum;
st = st_prim;
dr = dr_prim;
}
else if(best == sum && dr - st > dr_prim - st_prim)
{
st = st_prim;
dr = dr_prim;
}
}
fout << best<< " ";
//cout << best<< " ";
fout << st + 1 << " " << dr + 1 << endl;
//cout << st + 1 << " " << dr + 1 << endl;
fin.close();
fout.close();
return 0;
}