Pagini recente » Cod sursa (job #44608) | Cod sursa (job #281555) | Cod sursa (job #1643601) | Cod sursa (job #272342) | Cod sursa (job #2853444)
#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;
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 > 0)
ant = a;
a = i+1;
//out << a << '\n';
if (a > n)
a = b;
}
if (smax < maxs[i])
{
smax=maxs[i];
b=i;
}
if (a > b && b != 1)
a = ant;
}
out << smax << " " <<a<< " " << b ;
return 0;
}