1990D - Grid Puzzle - CodeForces Solution


bitmasks dp greedy implementation math

Please click on ads to support us..

Python Code:

def solve():
    n = int(input())
    l = [int(x) for x in input().split()]
    l = [[1, i] for i in l]
    s = 0
    for i in range(n - 1):
        if l[i][1] == 0 or l[i][1]<l[i][0]:
            continue
        elif l[i][1] - l[i][0] >=2:
            s += 1
        else:
            if l[i][1]<l[i+1][1]:
                if l[i][1]<=2:
                    l[i+1][0]=3
                else:                    if l[i][1]==3:
                        if l[i+1][1]==4:
                            l[i+1][1]=2
            else:
                l[i + 1][1] = min(l[i][0]-1, l[i + 1][1])

            s += 1
    if l[n-1][1]<l[n-1][0]:
        s+=0
    else:
        s += 1

    print(s)


for w in range(int(input())):
    solve()


Comments

Submit
0 Comments
More Questions

580A- Kefa and First Steps
1472B- Fair Division
996A - Hit the Lottery
MSNSADM1 Football
MATCHES Playing with Matches
HRDSEQ Hard Sequence
DRCHEF Doctor Chef
559. Maximum Depth of N-ary Tree
821. Shortest Distance to a Character
1441. Build an Array With Stack Operations
1356. Sort Integers by The Number of 1 Bits
922. Sort Array By Parity II
344. Reverse String
1047. Remove All Adjacent Duplicates In String
977. Squares of a Sorted Array
852. Peak Index in a Mountain Array
461. Hamming Distance
1748. Sum of Unique Elements
897. Increasing Order Search Tree
905. Sort Array By Parity
1351. Count Negative Numbers in a Sorted Matrix
617. Merge Two Binary Trees
1450. Number of Students Doing Homework at a Given Time
700. Search in a Binary Search Tree
590. N-ary Tree Postorder Traversal
589. N-ary Tree Preorder Traversal
1299. Replace Elements with Greatest Element on Right Side
1768. Merge Strings Alternately
561. Array Partition I
1374. Generate a String With Characters That Have Odd Counts