В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
GarryPotter15
GarryPotter15
14.06.2020 00:21 •  Информатика

Часовой механизм К вам обратился владелец часовой мастерской, которая делает часы с прозрачным корпусом. В мастерской есть 1 проблема: дизайнеры придумывают то, как будут выглядят часы, но не задумываются о том, как шестеренки будут крутиться. Поэтому, когда дизайн получают мастера, им приходится проверять работо нарисованного дизайнерами механизма – проверять не заклинит ли механизм от сцепки двух крутящихся в одном направлении шестеренок.

Напишите программу, которая будет делать эту работу за мастеров.

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

Первая строка содержит количество шестеренок NN (число от 1 до 1000 включительно).

Вторая строка содержит количество связей между шестеренками MM (число от 0 до 1000 включительно), которые сцеплены между собой (если одна из них крутится по часовой стрелке, вторая должна крутиться против часовой и наоборот).

Далее идет ММ строк с парами чисел, являющихся номерами сцепленных между собой шестеренок (нумерация начинается с 1).

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

Программа должна вывести одно из 2 слов: ‘good’, если механизм работо или ‘bad’, если механизм заклинит.

Sample Input:

4
4
1 2
2 3
3 4
4 1
Sample Output:

good
Напишите программу. Тестируется через stdin → stdout

Time Limit: 15 секунд
Memory Limit: 256 MB

Показать ответ
Ответ:
Иваныч71
Иваныч71
09.12.2020 22:39

gears_count = int(input())

connections_count = int(input())

connections = []

for i in range(connections_count):

   inp = input()

   connections = connections + [[int(inp.split()[0]), int(inp.split()[1])]]

def get_connections_of_gear(gear=1, connections_arr=[[0]]):

   gear_connections = 0

   if connections_arr:

       for i in range(connections_count * 2):

           if connections_arr[i // 2][i % 2] == gear:

               gear_connections += 1

   return gear_connections

def is_valid():

   if gears_count < 3 or connections_count < 3:

       return "good"

   elif gears_count % 2 == 0:

       gears = 0

       for i in range(gears_count):

           if get_connections_of_gear(i, connections) > 2:

               gears += 1

       if gears % 2 == 0:

           return "good"

   elif not gears_count % 2 == 0:

       gears = 0

       for i in range(gears_count):

           if get_connections_of_gear(i, connections) > 2:

               gears += 1

       if not gears % 2 == 0:

           return "good"

   return "bad"

print(is_valid())

Объяснение:

8 из 11

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота