Cod sursa(job #326246)

Utilizator savimSerban Andrei Stan savim Data 24 iunie 2009 13:30:50
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <stdio.h>

int n, k, sol = -2147000000, sum, p, q, st;
char s[20];

int main() {

	freopen("ssm.in", "r", stdin);
	freopen("ssm.out", "w", stdout);

	scanf("%d\n", &n);
	for (int i = 1; i <= n; i++) {
		scanf("%s", s);
		
		int j = 0, semn = 1;
		k = 0;

		if (s[j] == '-') {
			semn = 0;
			j++;
		}
		while ('0' <= s[j] && s[j] <= '9')
			k = k * 10 + s[j++] - 48;
		if (!semn) k = -k;

		if (k > sol) {
			sol = k;
			p = i;
			q = i;
		}

		sum += k;
		if (sum >= 0 && st == 0)
			st = i;

		if (sum > sol) {
			p = st;
			q = i;
			sol = sum;      
		}
		if (sum < 0) {
			st = 0;
			sum = 0;
		}
	}

	printf("%d %d %d\n", sol, p, q);

	return 0;
}