Cod sursa(job #629814)

Utilizator sebii_cSebastian Claici sebii_c Data 4 noiembrie 2011 00:19:36
Problema Subsecventa de suma maxima Scor 65
Compilator c Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdio.h>
#define INF 0x3f3f3f3f
#define NMAX 6000010

int S[NMAX];

inline int max(int a, int b)
{
	return (a>b)?a:b;
}

int main()
{
	freopen("ssm.in", "r", stdin);
	freopen("ssm.out", "w", stdout);
	int n, best = 0, i, pos, maxim = -INF, sum;
	scanf("%d", &n);
	for (i=1; i<=n; ++i) {
			scanf("%d", &S[i]);
			best = max(S[i] + best, S[i]);
			if (best > maxim) {
					maxim = best;
					pos = i;
			}
	}
	sum = maxim;
	for (i=pos; sum; --i)
			sum -= S[i];
	printf("%d %d %d\n", maxim, i+1, pos);		
	return 0;
}