Submit | All submissions | Best solutions | Back to list |
PARSUMS - Nonnegative Partial Sums |
You are given a sequence of n numbers a0 ... an−1. A cyclic shift by k positions (0 ≤ k ≤ n−1) results in the following sequence: ak, ak+1 ... an−1, a0, a1 ... ak−1. How many of the n cyclic shifts satisfy the condition that the sum of the first i numbers is greater than or equal to zero for all i with 1 ≤ i ≤ n?
Input
Each test case consists of two lines. The first contains the number n (1 ≤ n ≤ 106), the number of integers in the sequence. The second contains n integers a0 ... an−1 (−1000 ≤ ai ≤ 1000) representing the sequence of numbers. The input will finish with a line containing 0.
Output
For each test case, print one line with the number of cyclic shifts of the given sequence which satisfy the condition stated above.
Example
Input: 3 2 2 1 3 -1 1 1 1 -1 0 Output: 3 2 0
Problem setter: Adrian Kuegel
Added by: | David García Soriano |
Date: | 2011-11-26 |
Time limit: | 8.989s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: ASM64 |
Resource: | Southwestern Europe Regional, SWERC 2011 |
hide comments
|
|||||
2019-02-13 07:42:49
res = 0 for each cyclic shift: _if cumulative sum array of cyclic shift contains no negative values: __res += 1; Good problem, a bit harder to crack than seemed to, when I got the statement right that is. Last edit: 2019-02-13 07:44:43 |
|||||
2015-01-13 07:13:57 Sahil Sharma
Hi, Could someone please tell me about how one can get a solution as fast as under 1 second for this problem? Are there some algorithm level optimizations for this problem? My algorithm is O(n)(with a reasonably small constant) and also uses fast Input (getchar() based) and yet it takes 6.6 seconds. Thanks |
|||||
2014-04-22 23:11:32 AlcatraZ
Nice and Tricky.. ;) |
|||||
2014-01-04 13:21:55 Ankit Jain
logical question |
|||||
2011-12-22 17:26:35 BOND
@accept first i numbers mean every number starting from base index till i if 1 is your base index then yes,otherwise by default it starts with index 0 |
|||||
2011-12-22 10:54:07 accept
what's mean of first i number.. is this number start from 1 or random.. |
|||||
2011-12-21 15:54:38 BOND
edit- got it Last edit: 2012-05-26 12:50:59 |
|||||
2011-12-15 14:32:28 Adrian Kuegel
Please tell which part is unclear to you. Here is an example: If the original sequence is -1 1 1, then there are 3 cyclic shifts: shift by 0 positions results in -1 1 1, shift by 1 positions results in 1 1 -1, shift by 2 positions results in 1 -1 1. Last edit: 2011-12-15 14:35:20 |
|||||
2011-12-15 14:24:20 Vratika Ghatiya
Please elaborate i !! For 0 Shift we have to check -1 >= 0 , for 1st shift 1+1 >=0 and for 2nd shift 1+(-1)+1 >= 0 , is it so..?? Last edit: 2011-12-16 08:55:09 |
|||||
2011-12-03 09:34:10 sri
what is the value of i??? could not understand the question properly.. |