ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
Перепечатать код с Python'a на Delphi или C++ |

28.04.2010, 23:24
|
|
Новичок
Регистрация: 26.04.2010
Сообщений: 1
Провел на форуме: 3744
Репутация:
0
|
|
Перепечатать код с Python'a на Delphi или C++
Пожалуйста кто умеет перепечатайте код с python на делфи. Заранее спасибо.
Код:
#!/usr/bin/env python
# coding: utf-8
import sys
# чтение входа
N, M, S1, S2 = map(int, sys.stdin.readline().split())
adj = [[] for each in range(N + 1)] # списки смежности
for each in range(M):
a, b = map(int, sys.stdin.readline().split())
adj[a].append(b)
adj[b].append(a)
olor=dict() # color[x] будет равен цвету вершины
# процедура раскраски графа в два цвета, 0 и 1
def dfs(x, xcolor):
color[x] = xcolor
for y in adj[x]:
if y not in color: # если y не посетили
dfs(y, 1 - xcolor) # посещаем и назначаем противоположный цвет
elif color[y] !=1- xcolor: # проверяем на совместимость
raise 'NO'
try:
dfs(x=1, xcolor=0)
num = [0, 0]
for x in color.keys():
num[color[x]] += 1
if (num[0] <= S1 and num[1] <= S2) or (num[0] <= S2 and num[1] <= S1):
print 'YES'
if (num[0]<=S1 and num[1]<=S2):
for x in range(1,N+1) :
print color[x]+1,' ',
else:
for x in range(1,N+1):
print 2-color[x],' ',
else:
print 'NO'
except:
print 'NO'
|
|
|

29.04.2010, 00:05
|
|
Познающий
Регистрация: 11.04.2009
Сообщений: 47
Провел на форуме: 116295
Репутация:
2
|
|
Сообщение от Livion
Пожалуйста кто умеет перепечатайте код с python на делфи. Заранее спасибо.
Код:
#!/usr/bin/env python
# coding: utf-8
import sys
# чтение входа
N, M, S1, S2 = map(int, sys.stdin.readline().split())
adj = [[] for each in range(N + 1)] # списки смежности
for each in range(M):
a, b = map(int, sys.stdin.readline().split())
adj[a].append(b)
adj[b].append(a)
olor=dict() # color[x] будет равен цвету вершины
# процедура раскраски графа в два цвета, 0 и 1
def dfs(x, xcolor):
color[x] = xcolor
for y in adj[x]:
if y not in color: # если y не посетили
dfs(y, 1 - xcolor) # посещаем и назначаем противоположный цвет
elif color[y] !=1- xcolor: # проверяем на совместимость
raise 'NO'
try:
dfs(x=1, xcolor=0)
num = [0, 0]
for x in color.keys():
num[color[x]] += 1
if (num[0] <= S1 and num[1] <= S2) or (num[0] <= S2 and num[1] <= S1):
print 'YES'
if (num[0]<=S1 and num[1]<=S2):
for x in range(1,N+1) :
print color[x]+1,' ',
else:
for x in range(1,N+1):
print 2-color[x],' ',
else:
print 'NO'
except:
print 'NO'
Глава 22 Кормен, Лейзерсон и др. Структуры данных и алгоритмы как-то так. Там в псевдокоде все есть.
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|