Pagini recente » Cod sursa (job #1177312) | Cod sursa (job #1178310) | Cod sursa (job #1177229) | Cod sursa (job #3170600) | Cod sursa (job #2400472)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
vector <int> v;
int main()
{
int n;
fin >> n;
for (int i=0;i<n;++i)
{
int x;
fin >> x;
v.push_back(x);
}
long long scur=0, st, maxim=0, dr, stcur, drcur;
bool ok=true;
st=0;
for (int i=0;i<n;++i)
{
scur+=v[i];
if (scur<0)
{
scur=0;
stcur=i+1;
}
else if (scur>maxim)
{
maxim=scur;
st=stcur;
dr=i;
}
else if (scur==maxim)
{
if(stcur<st)
{
st=stcur;
dr=i;
}
else if (stcur==st)
{
if (i-stcur<dr-st)
{
st=stcur;
dr=i;
}
}
}
}
fout << maxim << " " << st+1 << " " << dr+1;
return 0;
}