Pagini recente » Cod sursa (job #2102569) | Cod sursa (job #1449883) | Cod sursa (job #1948145) | Cod sursa (job #1896629) | Cod sursa (job #1337961)
#include<stdio.h>
#define MAXSIZE 6000001
#define FIN "ssm.in"
#define FOUT "ssm.out"
int n;
int v[MAXSIZE];
int best[MAXSIZE];
int main()
{
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
scanf("%d", &n);
for(int i=1;i<=n;i++)
{
scanf("%d ", &v[i]);
}
int begin = 1;
int end = 1;
int maxx = v[1];
int sum = 0;
best[1] = v[1];
for(int i=2;i<=n;i++)
{
sum += v[i];
if(sum < 0)
{
sum = 0;
begin = i+1;
}
if(best[i-1] + v[i] > v[i])
{
best[i] = best[i-1] + v[i];
if(best[i] > maxx)
{
maxx = best[i];
end = i;
}
}
else
{
best[i] = v[i];
}
}
printf("%d %d %d", maxx, begin, end);
return 0;
}