Fast Food Restaurant (Codeforces 1313A)
Tags: Greedy, brute force

Tired of boring office work, Denis decided to open a fast food restaurant.On the first day he made $$$a$$$ portions of dumplings, $$$b$$$ portions of cranberry juice and $$$c$$$ pancakes with condensed milk.The peculiarity of Denis's restaurant is the procedure of ordering food. For each visitor Denis himself chooses a set of dishes that this visitor will receive. When doing so, Denis is guided by the following rules:  every visitor should receive at least one dish (dumplings, cranberry juice, pancakes with condensed milk are all considered to be dishes);  each visitor should receive no more than one portion of dumplings, no more than one portion of cranberry juice and no more than one pancake with condensed milk;  all visitors should receive different sets of dishes. What is the maximum number of visitors Denis can feed?

Input: The first line contains an integer $$$t$$$ ($$$1 \le t \le 500$$$) — the number of test cases to solve.Each of the remaining $$$t$$$ lines contains integers $$$a$$$, $$$b$$$ and $$$c$$$ ($$$0 \leq a, b, c \leq 10$$$) — the number of portions of dumplings, the number of portions of cranberry juice and the number of condensed milk pancakes Denis made.

Output: For each test case print a single integer — the maximum number of visitors Denis can feed.

Note: In the first test case of the example, Denis can feed the first visitor with dumplings, give the second a portion of cranberry juice, and give the third visitor a portion of cranberry juice and a pancake with a condensed milk.In the second test case of the example, the restaurant Denis is not very promising: he can serve no customers.In the third test case of the example, Denise can serve four visitors. The first guest will receive a full lunch of dumplings, a portion of cranberry juice and a pancake with condensed milk. The second visitor will get only dumplings. The third guest will receive a pancake with condensed milk, and the fourth guest will receive a pancake and a portion of dumplings. Please note that Denis hasn't used all of the prepared products, but is unable to serve more visitors.

Sample Inputs:
7
1 2 1
0 0 0
9 1 7
2 2 3
2 3 2
3 2 2
4 4 4

Sample Outputs:
3
0
4
5
5
5
7

Solution (Python):
from bisect import bisect
l = '001 011 022 122 223 333 444'.split()
for _ in range(int(input())):
    print(bisect(l, '{}{}{}'.format(*sorted((min(int(s), 4) for s in input().split())))))

Solution (Python):
def solve():
    (a, b, c) = sorted(map(int, input().split()), reverse=True)
    result = 0
    if a:
        a -= 1
        result += 1
    if b:
        b -= 1
        result += 1
    if c:
        c -= 1
        result += 1
    if a and b:
        a -= 1
        b -= 1
        result += 1
    if a and c:
        a -= 1
        c -= 1
        result += 1
    if b and c:
        b -= 1
        c -= 1
        result += 1
    if a and b and c:
        result += 1
    print(result)
if __name__ == '__main__':
    for test in range(int(input())):
        solve()

Solution (Python):
for i in range(int(input())):
    a = list(map(int, input().split(' ')))
    ans = 0
    a.sort(reverse=True)
    if a[0] > 0:
        ans += 1
        a[0] -= 1
    if a[1] > 0:
        ans += 1
        a[1] -= 1
    if a[2] > 0:
        ans += 1
        a[2] -= 1
    if a[0] > 0 and a[1] > 0:
        ans += 1
        a[0] -= 1
        a[1] -= 1
    if a[1] > 0 and a[2] > 0:
        ans += 1
        a[1] -= 1
        a[2] -= 1
    if a[0] > 0 and a[2] > 0:
        ans += 1
        a[0] -= 1
        a[2] -= 1
    if a[0] > 0 and a[1] > 0 and (a[2] > 0):
        ans += 1
    print(ans)