Life of a Flower (Codeforces 1585A)
Tags: Implement, implementation

Petya has got an interesting flower. Petya is a busy person, so he sometimes forgets to water it. You are given $$$n$$$ days from Petya's live and you have to determine what happened with his flower in the end.The flower grows as follows:   If the flower isn't watered for two days in a row, it dies.  If the flower is watered in the $$$i$$$-th day, it grows by $$$1$$$ centimeter.  If the flower is watered in the $$$i$$$-th and in the $$$(i-1)$$$-th day ($$$i > 1$$$), then it grows by $$$5$$$ centimeters instead of $$$1$$$.  If the flower is not watered in the $$$i$$$-th day, it does not grow. At the beginning of the $$$1$$$-st day the flower is $$$1$$$ centimeter tall. What is its height after $$$n$$$ days?

Input: Each test contains multiple test cases. The first line contains the number of test cases $$$t$$$ ($$$1 \le t \le 100$$$). Description of the test cases follows.The first line of each test case contains the only integer $$$n$$$ ($$$1 \leq n \leq 100$$$).The second line of each test case contains $$$n$$$ integers $$$a_1, a_2, \dots, a_n$$$ ($$$a_i = 0$$$ or $$$a_i = 1$$$). If $$$a_i = 1$$$, the flower is watered in the $$$i$$$-th day, otherwise it is not watered.

Output: For each test case print a single integer $$$k$$$ — the flower's height after $$$n$$$ days, or $$$-1$$$, if the flower dies.


Sample Inputs:
4
3
1 0 1
3
0 1 1
4
1 0 0 1
1
0

Sample Outputs:
3
7
-1
1

Solution (Python):
t = int(input())
ans = []
for i in range(t):
    a = int(input())
    b = list(map(int, input().split()))
    vr_0 = 0
    vr_1 = 0
    vr = 1
    for j in range(a):
        if b[j] == 0:
            vr_0 += 1
            vr_1 -= vr_1
        if vr_0 == 2:
            vr = -1
            break
        if b[j] == 1:
            vr_1 += 1
            vr_0 -= vr_0
        if vr_1 == 1:
            vr += 1
        elif vr_1 > 1:
            vr += 5
    ans.append(vr)
for i in range(t):
    print(ans[i])

Solution (Python):
for _ in range(int(input())):
    input()
    li = list(map(int, input().split()))
    days_not_watered = int(not li[0])
    x = li[0] + 1
    for i in range(1, len(li)):
        if days_not_watered == 2:
            x = -1
            break
        if li[i - 1] == 1 and li[i] == 1:
            x += 5
            days_not_watered = 0
        elif li[i] == 1:
            x += 1
            days_not_watered = 0
        else:
            days_not_watered += 1
            if days_not_watered == 2:
                x = -1
                break
    print(x)

Solution (Python):
t = int(input())
for j in range(t):
    n = int(input())
    a = list(map(int, input().split()))
    c = 1
    for i in range(n):
        if i != 0:
            if a[i] == 0 and a[i - 1] == 0:
                c = -1
                break
            elif a[i] == 1 and a[i - 1] == 1:
                c += 5
            elif a[i] == 1 and a[i - 1] == 0:
                c += 1
        elif a[i] == 1:
            c += 1
    print(c)