Часовой механизм К вам обратился владелец часовой мастерской, которая делает часы с прозрачным корпусом. В мастерской есть 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

neeestii neeestii    3   09.11.2020 22:37    1

Ответы
Еваююююююююююю Еваююююююююююю  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

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика