greedy implementation *1500

Please click on ads to support us..

Python Code:

t = int(input())

while t > 0:
    t = t - 1
    n = int(input())
    a = list(map(int, input().split()))

    cnt = {}
    vals = []
    for i in a:
        if i in cnt:
            cnt[i] = cnt[i] + 1
        else:
            vals.append(i)
            cnt[i] = 1

    gold = cnt[vals[0]]
    silver = 0
    p = 1
    while silver <= gold and p < len(vals):
        silver += cnt[vals[p]]
        p += 1

    bronze = 0
    while bronze <= gold and p < len(vals):
        bronze += cnt[vals[p]]
        p += 1
    while p < len(vals) and 2 * (gold + silver + bronze + cnt[vals[p]]) <= n:
        bronze += cnt[vals[p]]
        p += 1
    if 2 * (silver + bronze + gold) > n or gold >= silver or gold >= bronze:
        print("0 0 0")
        continue

    print(gold, silver, bronze)


Comments

Submit
0 Comments
More Questions

1277C - As Simple as One and Two
1301A - Three Strings
460A - Vasya and Socks
1624C - Division by Two and Permutation
1288A - Deadline
1617A - Forbidden Subsequence
914A - Perfect Squares
873D - Merge Sort
1251A - Broken Keyboard
463B - Caisa and Pylons
584A - Olesya and Rodion
799A - Carrot Cakes
1569B - Chess Tournament
1047B - Cover Points
1381B - Unmerge
1256A - Payment Without Change
908B - New Year and Buggy Bot
979A - Pizza Pizza Pizza
731A - Night at the Museum
742A - Arpa’s hard exam and Mehrdad’s naive cheat
1492A - Three swimmers
1360E - Polygon
1517D - Explorer Space
1230B - Ania and Minimizing
1201A - Important Exam
676A - Nicholas and Permutation
431A - Black Square
474B - Worms
987B - High School Become Human
1223A - CME