Pagini recente » Cod sursa (job #3175928) | Monitorul de evaluare | Cod sursa (job #1848746) | Cod sursa (job #607083) | Cod sursa (job #2854279)
#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];
ant = a;
a = i+1;
if (a > n)
a = b;
}
if (smax < maxs[i])
{
smax=maxs[i];
b=i;
}
if (a > b && ant != 0)
a = ant;
}
out << smax << " " <<a<< " " << b ;
return 0;
}