关注
from collections import OrderedDict import sys lines = sys.stdin.readlines() n = int(lines[0].strip()) old_l = lines[1:n+1] m = int(lines[n+1].strip()) transfer_l = lines[n+2:] old = OrderedDict() transfer = dict() jwr = dict() for o in reversed(old_l): e1, e2, e3 = o.strip().split(",") if (e1, e3) in jwr: continue old[(e1, e2)] = e3 jwr[(e1, e3)] = e2 last_name = dict() for t in reversed(transfer_l): e1, e2, e3, e4 = t.strip().split(",") if (e1, e2) in transfer: continue transfer[(e1, e2)] = (e3, e4) last_name[(e3, e4)] = old[(e1, e2)] new_air_seat = dict() seat_taken = set() air_taken = set() for k in old: user = old[k] if k not in transfer: new_air, new_seat = k if (new_air, new_seat) not in seat_taken and (user, new_air) not in air_taken: new_air_seat[k] = old[k] continue new_air, new_seat = transfer[k] if (new_air, new_seat) not in seat_taken and (user, new_air) not in air_taken: new_air_seat[(new_air, new_seat)] = user seat_taken.add((new_air, new_seat)) air_taken.add((user, new_air)) # print(new_air_seat) r = [] for k in sorted(new_air_seat.keys()): if k in last_name.keys() and new_air_seat[k] != last_name[k]: continue r.append("%s,%s,%s" % (k[0], k[1], new_air_seat[k])) for rr in r: print(rr) # print(old) # print(transfer) 总体来说考虑的还是挺多的
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届春招投递记录 #
18518次浏览 133人参与
# 米哈游笔试 #
708020次浏览 1268人参与
# 我的求职总结 #
489227次浏览 6888人参与
# 你遇到过哪些神仙同事 #
144889次浏览 767人参与
# 27届实习投递记录 #
88436次浏览 931人参与
# 金融银行求职进展汇总 #
363131次浏览 1979人参与
# 美团秋招笔试 #
219227次浏览 1198人参与
# 我是XXX,请攻击我最薄弱的地方 #
97803次浏览 649人参与
# 拼多多工作体验 #
63151次浏览 439人参与
# 宁德时代求职进展汇总 #
188471次浏览 710人参与
# 选择和努力,哪个更重要? #
215706次浏览 1586人参与
# Vibe Coding 会干掉初级岗位吗? #
52195次浏览 335人参与
# 实习转正进行时 #
198132次浏览 1171人参与
# 职场吐槽大会 #
361804次浏览 2308人参与
# HR最不可信的一句话是__ #
37104次浏览 186人参与
# 牛油的搬砖plog #
208093次浏览 1337人参与
# 什么专业适合考公 #
73822次浏览 486人参与
# 工作中哪个瞬间让你想离职 #
137192次浏览 810人参与
# 蚂蚁求职进展汇总 #
176239次浏览 1299人参与
# 实习生至暗时刻 #
91125次浏览 939人参与
查看11道真题和解析