Pagini recente » Cod sursa (job #1301128) | Cod sursa (job #2321914) | Cod sursa (job #284353) | Cod sursa (job #1566144) | Cod sursa (job #2854282)
#include <fstream>
using namespace std;
ifstream in ("ssm.in");
ofstream out ("ssm.out");
int sum[6000001] = {0}, maxs[6000001]={-1000000000};
int main()
{
int n, smin, smax, a=0,b=0,x, ant=0;
int i;
in >> n;
for (i = 1; i <= n; i++)
{
in >> x;
sum[i] = sum[i-1] + x;
}
smin=sum[0];
smax=-100000000;
for (i = 1; i <= n; i++)
{
maxs[i]=sum[i]-smin;
if (smin > sum[i])
{
smin=sum[i];
if (a < b)
ant = a;
a = i+1;
if (a > n)
a = b;
}
if (smax < maxs[i])
{
smax=maxs[i];
b=i;
}
}
if (a > b)
a = ant;
out << smax << " " <<a<< " " << b ;
return 0;
}