Задача к ЕГЭ по информатике на тему «практика программирования» №6

В Берляндии построили новое здание общежития для университета! В него уже заселились студенты, некоторые из которых очень любят слушать громкую музыку после полуночи, что доставляет неудобство всем соседям вокруг. Здание имеет форму прямоугольного параллепипеда, так что соседями для студента считаются все люди, живущие сверху, снизу, слева и справа от него. Cтудент считается невыспавшимся, если хотя бы один из его соседей громко слушает музыку, причем человек, который поставил музыку, выспится, потому что его музыка его не напрягает. Количество подъездов равно N  , количество этажей в подъезде равно M  , количество квартир на этаже L  . По данным о студентах определите, сколько из них выспится?

Входные данные:

В первой строчке входных данных содержатся 3 числа: N,M, L  . В следующих N × M  строках содержатся по    L  чисел — 1  если студент слушает музыку после полуночи и 0  в противном случае.

Выведите единственное число — количество студентов, которые смогут выспаться.

Пример входного файла:

2 2 2

1 0

0 1

0 0

0 0

Пояснение к примеру:

4

f = open("1.txt")
n, m, l = map(int, f.readline().split())
a = [[[0 for q in range(l)] for j in range(m)] for i in range(n)]
for i in range(n):
    for j in range(m):
        t = list(map(int, f.readline().split()))
        a[i][j] = t

cnt = 0
for i in range(n):
    for j in range(m):
        for k in range(l):
            p = 1
            if (k - 1 >= 0 and a[i][j][k - 1] == 1) or (k + 1 < l and a[i][j][k + 1] == 1) 
            or (i - 1 >= 0 and a[i - 1][j][k] == 1) or (i + 1 < n and a[i + 1][j][k] == 1) 
            or (j - 1 >= 0 and a[i][j - 1][k] == 1) or (j + 1 < m and a[i][j + 1][k] == 1):
                p = 0
            cnt += p

print(cnt)

Ответ: 60
Оцените статью
Я решу все!