М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
паро8
паро8
28.03.2021 09:18 •  Информатика

Рисунок Задан рисунок, состоящий из пронумерованных точек и линий между ними. Напишите программу, которая скажет можно ли нарисовать этот рисунок (провести ручку по всем точкам и линиям), не отрывая руки и при этом не проводя одну линию дважды?

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

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

Вторая строка содержит число MM – количество линий (число от 0 до 1000 включительно).

Далее идет MM строк, каждая из которых содержит пары номеров точек, соединенных линиями (нумерация точек с 1, между парой точек может быть проведено несколько линий)

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

"Yes", если рисунок можно нарисовать в соответствии с условием

"No", если нет.

Sample Input:

3
2
1 2
2 3
Sample Output:

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

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

👇
Ответ:
applegamm
applegamm
28.03.2021

Код готов, но дает 7. Однако при использовании совместно с кодом 2, то дает

Объяснение:

a = int(input())

b = int(input())

mas = ["test"]

mas01 = []

e = 0

ce = 2

answer = ""

test01 = "Correct"

test02 = ""

test03 = ""

externaltest03 = "NONE"

for i in range(b):

   c, d = map(int, input().split())

   for m in range(len(mas)):

       if c == mas[m]:

           e = e + 1

   if e != 0:

       e = 0

   else:

       mas.append(c)

   for m in range(len(mas)):

       if d == mas[m]:

           e = e + 1

   if e != 0:

       e = 0

   else:

       mas.append(d)

   mas01.append(c)

   mas01.append(d)

del mas[0]

#First attemp

t = len(mas01) + 1

try:

   for i in range(1,t,2):

       if mas01[i] == mas01[i + 1]:

           pass

       else:

           test01 = "Incorrect"

           break

except:

   pass

del i

del e

#Second attemp

if len(mas) == a:

   test02 = "Correct"

else:

   test02 = "Incorrect"

   

del a

del mas

#Third attemp

for i in range(0, t - 4, 2):

   j = mas01[i]

   k = mas01[i + 1]

   m = mas01[ce]

   n = mas01[ce + 1]

   if j == m and k == n or j == n and k == m:

       externaltest03 = "Error"

   ce = ce + 2

del mas01

   

#4st attemp

if externaltest03 == "Error":

   test03 = "Incorrect"

else:

   test03 = "Correct"

del externaltest03

   

#5st Generate answer

if test01 == "Correct" and test02 == "Correct" and test03 == "Correct":

   answer = "Yes"

else:

   answer = "No"

   

print(answer)

a = int(input())

b = int(input())

mas = ["test"]

mas01 = []

e = 0

ce = 2

answer = ""

test01 = "Correct"

test02 = ""

test03 = ""

test04 = ""

externaltest03 = "NONE"

test04error = "NONE"

# Enable console testing?

# If yes, to write for value "START"

enableconsole = "STAR"

#Disable test01?

#If yes, write value "STOP"

disabletest01 = "STOP"

for i in range(b):

   c, d = map(int, input().split())

   for m in range(len(mas)):

       if c == mas[m]:

           e = e + 1

   if e != 0:

       e = 0

   else:

       mas.append(c)

   for m in range(len(mas)):

       if d == mas[m]:

           e = e + 1

   if e != 0:

       e = 0

   else:

       mas.append(d)

   mas01.append(c)

   mas01.append(d)

del mas[0]

#First attemp

t = len(mas01) + 1

if disabletest01 != "STOP":

   try:

       for i in range(1,t,2):

           if mas01[i] == mas01[i + 1]:

               pass

           else:

               test01 = "Incorrect"

               break

   except:

       pass

#del i

#del e

#Second attemp

if len(mas) == a:

   test02 = "Correct"

else:

   test02 = "Incorrect"

   

#del a

#del mas

#Third attemp

for i in range(0, t - 4, 2):

   j = mas01[i]

   k = mas01[i + 1]

   m = mas01[ce]

   n = mas01[ce + 1]

   if j == m and k == n or j == n and k == m:

       externaltest03 = "Error"

   ce = ce + 2

   

#4st attemp

if externaltest03 == "Error":

   test03 = "Incorrect"

else:

   test03 = "Correct"

#del externaltest03

   

#5st Test04

for i in range(0, len(mas01), 2):

   if mas01[i] == mas01[i + 1]:

       test04error = "Error"

if test04error == "Error":

   test04 = "Incorrect"

else:

   test04 = "Correct"

#del mas01

   

#6st Generate answer

if test01 == "Correct" and test02 == "Correct" and test03 == "Correct" and test04 == "Correct":

   answer = "Yes"

else:

   answer = "No"

   

print(answer)

if enableconsole == "START":

   print(mas)

   print(mas01)

   print(test01)

   print(test02)

   print(test03)

   print(test04)

   print(externaltest03)

4,8(80 оценок)
Открыть все ответы
Ответ:
Школьниқ
Школьниқ
28.03.2021
Переформулируем задачу на теорию графов:
Если все вершины графа разделить на два множества, то найдется ребро, соединяющее вершину одного множества с вершиной другого. Доказать, что граф связный.

Докажем от противного. Пусть граф несвязный, тогда у него есть как минимум две компоненты связности. Тогда возьмем такое разбиение графа на группы: в первой группе будут только вершины первой компоненты связности, а в другой группе будут все остальные вершины. В таком случае, по условию задачи существует ребро из вершины первой группы в вершину второй, но это невозможно, так как вершины принадлежат к разным компонентам связности, а по определению между двумя разными компонентами связности нет ребер. Противоречие, следовательно, граф связный. Что и требовалось доказать.
4,8(41 оценок)
Ответ:
853692
853692
28.03.2021
В начале в строке находилось 333 троек по 8 плюс одна 8, всего 1000 восьмерок.
1. При выполнения цикла каждая из троек 8 будет заменена на одну 9. Значит у нас получится строка длиной в 334 символа, где 333 девятки и последний символ - восьмерка
2. Далее 333 девятки заменятся на 111 восьмерок плюс последняя восьмерка - всего получим 112 восьмерок
3. Из 112 восьмерок получится 37 девяток и одна восьмерка
4. И 37 девяток получим 12 восьмерок плюс одна девятка и плюс последняя восьмерка
5. 12 восьмерок дадут 4 девятки плюс последние 9 и 8
6. И наконец получаем строку 8998
ответ: 8998
4,7(33 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ