init
This commit is contained in:
commit
851751ea87
82 changed files with 2093 additions and 0 deletions
42
AA.py
Normal file
42
AA.py
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
import sys
|
||||
|
||||
input_data = sys.stdin.read().split()
|
||||
|
||||
n = int(input_data[0])
|
||||
m = int(input_data[1])
|
||||
|
||||
graph = [[] for _ in range(n + 1)]
|
||||
ptr = 2
|
||||
|
||||
for i in range(1, n + 1):
|
||||
while True:
|
||||
val = int(input_data[ptr])
|
||||
ptr += 1
|
||||
if val == 0:
|
||||
break
|
||||
graph[i].append(val)
|
||||
|
||||
matching = [0] * (m + 1)
|
||||
|
||||
def dfs(v):
|
||||
if used[v]:
|
||||
return False
|
||||
used[v] = True
|
||||
for to in graph[v]:
|
||||
if matching[to] == 0 or dfs(matching[to]):
|
||||
matching[to] = v
|
||||
return True
|
||||
return False
|
||||
|
||||
for i in range(1, n + 1):
|
||||
used = [False] * (n + 1)
|
||||
dfs(i)
|
||||
|
||||
result = []
|
||||
for to in range(1, m + 1):
|
||||
if matching[to] != 0:
|
||||
result.append((matching[to], to))
|
||||
|
||||
print(len(result))
|
||||
for u, v in result:
|
||||
print(u, v)
|
||||
Loading…
Add table
Add a link
Reference in a new issue