Рисунок
Задан рисунок, состоящий из пронумерованных точек и линий между ними. Напишите программу, которая скажет можно ли нарисовать этот рисунок (провести ручку по всем точкам и линиям), не отрывая руки и при этом не проводя одну линию дважды?
Входные данные:
Первая строка содержит число 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
Answers & Comments
Ответ:
Код готов, но дает 7.5 баллов. Однако при использовании совместно с кодом 2, то дает 9 баллов
Объяснение:
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)