Pagini recente » Arhiva de probleme | Cod sursa (job #2985250) | Cod sursa (job #306075) | Cod sursa (job #2130192) | Cod sursa (job #1388052)
#include <cstdio>
#define DIM 6000600
#define INF 2000000000
using namespace std;
FILE *fin=freopen("ssm.in","r",stdin);
FILE *fout=freopen("ssm.out","w",stdout);
int n, V[DIM];
inline int MAX(int a, int b)
{
return ((a < b) ? b : a);
}
int main()
{
int i, best = -INF, s = 0, i1, first, last;
scanf("%d", &n);
for(i = 1; i <= n; ++i)
scanf("%d", &V[i]);
for(i = 1; i <= n; ++i)
{
s = MAX(s, 0);
if( !s && V[i - 1] != 0 )
i1 = i;
s += V[i];
if( s > best )
{
best = s, first = i1, last = i;
}
}
printf("%d %d %d", best, first, last);
}