Блог для маленьких школьников и их родителей
ШколаЛа

Часовой механизм К вам обратился владелец часовой мастерской, которая делает часы с прозрачным корпусом….

Автор:
Предмет: Информатика
Уровень: 5 - 9 класс

Часовой механизм

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

Ответов к вопросу: 1
  • chocolate33
    05.07.2024 | 12:43

    Ответ:
    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

Ответить на вопрос:
:p :-p 8) 8-) :lol: =( :( :-( :8 ;) ;-) :(( :o:
Нажимая на кнопку я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.