Saturday, May 16, 2015

UVa 12393 - Non-negative Partial Sums

// UVa 12393 - Non-negative Partial Sums

#include <stdio.h>
#include <string.h>

#define N 1000001
#define sll signed long long int

int a[N * 2];

int main() {
	int n;
	while (scanf("%d", &n) && (n != 0)) {
		for (int i = 0; i < n; i++) {
			scanf("%d", &a[i]);
			a[i + n] = a[i];
		}

		bool bad[N];
		memset(bad, false, sizeof(bad));
		sll sum = 0;
		for (int i = 2 * n - 1; i >= 0; i--) {
			if (sum > 0)
				sum = 0;
			sum += a[i];
			if (sum < 0)
				bad[i % n] = true;
		}

		int sol = 0;
		for (int i = 0; i < n; i++)
			if (!bad[i])
				sol++;

		printf("%d\n", sol);
	}
	return 0;
}

No comments:

Post a Comment