제출 #764054

#제출 시각아이디문제언어결과실행 시간메모리
764054rithikkatyal새로운 문제 (POI11_pro)Cpython 3
0 / 100
1018 ms7420 KiB
n, m, r, t, k = map(int, input().split()) # graph = defaultdict(list) graph ={} matching = [-1] * m degree = [0] * n for i in range(n): if graph.get(i)==None: graph[i]=[] # used = [0] * (n + 1) # T = 0 # def try_dfs(v, deg): # global T # if used[v] == T: # return False # used[v] = T # if degree[v] > deg + 1: # return True # for u in graph[v]: # if try_dfs(matching[u], deg): # degree[matching[u]] -= 1 # matching[u] = v # degree[v] += 1 # return True # return False def find(d,matching,degree): for u in range(m): if matching[u] == -1: for v in range(d,n): if u in graph[v] and matching[u] == -1: matching[u] = v degree[v] += 1 if v<n-1: find(v+1,matching,degree) else: return 0 for _ in range(k): u, v = map(int, input().split()) u -= 1 v -= 1 graph[u].append(v) find(0,matching,degree) # for u in range(m): # if matching[u] == -1: # for v in range(n): # if u in graph[v] and matching[u] == -1: # matching[u] = v # degree[v] += 1 # break # updated = True # while updated: # ds = [(degree[v], v) for v in range(n)] # ds.sort() # T += 1 # updated = any(try_dfs(v, degree[v]) for _, v in ds) penalty = 0 res = [] for v in range(n): degree[v] = min(degree[v], t // r) for u in range(m): if matching[u] != -1 and degree[matching[u]]: # print(matching[u],degree[matching[u]]) penalty += degree[matching[u]] * r degree[matching[u]] -= 1 res.append((matching[u] + 1, u + 1, degree[matching[u]] * r)) res.sort(key=lambda x:(x[2],x[0])) print(len(res), penalty) for el in res: print(el[0], el[1], el[2])
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...