#!/usr/bin/env python3
# Постный рацион на 7 дней (Успенский пост) — расчёт КБЖУ
# Правило: рыба и морепродукты во все дни КРОМЕ среды и пятницы

P = {
    # крупы и бобовые (сухие, если не указано)
    "овсянка":        (350, 12, 6, 60),
    "гречка":         (310, 12, 3, 62),
    "пшено":          (348, 11, 3, 67),
    "рис":            (344, 7, 1, 78),
    "булгур":         (342, 12, 1.5, 76),
    "киноа":          (368, 14, 6, 64),
    "чечевица":       (295, 24, 1.5, 46),
    "нут варёный":    (164, 9, 3, 27),
    "фасоль варёная": (127, 9, 0.5, 23),
    "спагетти цз":    (350, 14, 2, 68),
    "тофу":           (110, 12, 6, 3),
    "хлеб цз":        (250, 8, 3, 48),
    "хлебец рж":      (320, 8, 2, 65),
    # растительная молочка
    "соевое молоко":  (45, 3, 2, 3),
    "соевый йогурт":  (60, 4, 2, 8),
    # рыба и морепродукты (варёные/запечённые, без масла)
    "треска":         (90, 19, 1, 0),
    "минтай":         (79, 17, 1, 0),
    "судак":          (97, 19, 1, 0),
    "горбуша":        (140, 21, 6, 0),
    "форель":         (168, 20, 9, 0),
    "креветки":       (85, 18, 1.2, 0),
    "кальмары":       (92, 18, 2, 0),
    "мидии":          (90, 12, 2, 0),
    # овощи, фрукты, грибы
    "грибы":          (27, 4, 1, 0.5),
    "картофель":      (77, 2, 0.4, 17),
    "морковь":        (35, 1, 0.1, 7),
    "капуста":        (27, 1.8, 0.1, 4.7),
    "кабачок":        (24, 0.6, 0.3, 4.6),
    "баклажан":       (24, 1, 0.1, 4.5),
    "перец":          (27, 1.3, 0.1, 5.3),
    "помидоры":       (20, 0.9, 0.2, 3.9),
    "огурцы":         (15, 0.7, 0.1, 3),
    "лук":            (40, 1.4, 0.2, 8.6),
    "свёкла":         (43, 1.6, 0.2, 8.8),
    "тыква":          (28, 1, 0.1, 6.5),
    "брокколи":       (34, 2.8, 0.4, 6.6),
    "цветная":        (25, 1.9, 0.3, 5),
    "томатная паста": (80, 3, 0.5, 18),
    "яблоко":         (52, 0.3, 0.2, 14),
    "груша":          (57, 0.4, 0.3, 15),
    "банан":          (89, 1.1, 0.3, 22.8),
    "апельсин":       (43, 0.9, 0.2, 9),
    "ягоды":          (45, 0.8, 0.4, 10),
    "авокадо":        (160, 2, 15, 9),
    # орехи, семена, прочее
    "миндаль":        (579, 21, 50, 22),
    "грецкие":        (654, 15, 65, 14),
    "арахис":         (567, 26, 49, 16),
    "семечки":        (584, 21, 51, 20),
    "лён":            (534, 18, 42, 29),
    "хумус":          (166, 8, 10, 14),
    "масло":          (884, 0, 100, 0),
    "изюм":           (299, 3, 0.5, 79),
    "отруби":         (165, 8, 2, 30),
    "зелень":         (20, 1.5, 0.3, 2),
}

def calc(items):
    k = b = f = c = 0.0
    for name, g in items:
        kk, bb, ff, cc = P[name]
        k += kk * g / 100
        b += bb * g / 100
        f += ff * g / 100
        c += cc * g / 100
    return round(k), round(b), round(f), round(c)

def fmt(items):
    return " + ".join(f"{n} {g}г" for n, g in items)

DAYS = [
    ("Пятница 14.08 (постный день)", [
        [("овсянка",60),("соевое молоко",150),("яблоко",170),("миндаль",15)],
        [("хумус",50),("морковь",120)],
        [("чечевица",80),("картофель",120),("морковь",60),("лук",40),("масло",5),("хлеб цз",40)],
        [("соевый йогурт",150),("ягоды",100)],
        [("нут варёный",150),("кабачок",150),("перец",100),("помидоры",100),("масло",5),("булгур",40),("тофу",80)],
    ]),
    ("Суббота 15.08 (рыба)", [
        [("гречка",70),("грибы",100),("лук",40),("масло",5),("помидоры",100),("хлеб цз",40)],
        [("груша",160),("грецкие",15)],
        [("треска",200),("картофель",180),("морковь",60),("масло",5),("зелень",20)],
        [("яблоко",170),("семечки",20),("арахис",15)],
        [("тофу",120),("брокколи",200),("киноа",40),("масло",5),("креветки",100)],
    ]),
    ("Воскресенье 16.08 (рыба)", [
        [("пшено",60),("тыква",150),("соевое молоко",100),("лён",10),("миндаль",15)],
        [("апельсин",150),("миндаль",15)],
        [("горбуша",180),("гречка",80),("огурцы",100),("помидоры",100),("масло",5)],
        [("хумус",40),("хлебец рж",30),("огурцы",100),("соевый йогурт",150)],
        [("фасоль варёная",150),("капуста",150),("морковь",60),("томатная паста",20),("масло",5),("хлеб цз",40),("тофу",80)],
    ]),
    ("Понедельник 17.08 (рыба)", [
        [("овсянка",50),("соевое молоко",200),("банан",120),("лён",10)],
        [("яблоко",170),("арахис",15)],
        [("минтай",200),("картофель",150),("морковь",60),("масло",5),("хлеб цз",40),("креветки",100)],
        [("соевый йогурт",150),("ягоды",100),("грецкие",10)],
        [("гречка",80),("грибы",150),("лук",40),("масло",5),("огурцы",100),("зелень",20),("тофу",100)],
    ]),
    ("Вторник 18.08 (рыба)", [
        [("киноа",60),("соевое молоко",150),("ягоды",100),("грецкие",10),("лён",10)],
        [("груша",160),("семечки",15)],
        [("судак",200),("гречка",70),("огурцы",100),("помидоры",100),("масло",5),("креветки",100)],
        [("яблоко",170),("миндаль",10),("арахис",15)],
        [("тофу",150),("цветная",200),("морковь",80),("масло",5),("киноа",40)],
    ]),
    ("Среда 19.08 (постный день)", [
        [("пшено",60),("соевое молоко",150),("яблоко",170),("миндаль",10),("хлеб цз",40)],
        [("хумус",50),("огурцы",120)],
        [("чечевица",80),("баклажан",100),("перец",100),("помидоры",100),("масло",5),("булгур",40),("хлеб цз",40)],
        [("соевый йогурт",150),("ягоды",100),("грецкие",10)],
        [("нут варёный",150),("кабачок",150),("помидоры",100),("масло",5),("тофу",100)],
    ]),
    ("Четверг 20.08 (рыба)", [
        [("гречка",70),("тофу",80),("помидоры",100),("зелень",20),("хлеб цз",40)],
        [("апельсин",150),("грецкие",15)],
        [("треска",200),("картофель",150),("морковь",60),("масло",5),("хлеб цз",40)],
        [("банан",120),("арахис",15),("соевый йогурт",150)],
        [("спагетти цз",70),("томатная паста",30),("лук",40),("грибы",100),("масло",5),("тофу",80)],
    ]),
]

print("День | ккал | Б | Ж | У")
tot_k = tot_b = 0
for day, meals in DAYS:
    total = [0, 0, 0, 0]
    for meal in meals:
        r = calc(meal)
        for i in range(4):
            total[i] += r[i]
    tot_k += total[0]; tot_b += total[1]
    print(f"{day}: {total[0]} ккал · Б{total[1]} · Ж{total[2]} · У{total[3]}")
print(f"\nСреднее: {tot_k//7} ккал/день, {tot_b//7} г белка/день")
