// 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