Cách đọc test đầu vào Python

Link Đề:https://codeforces.com/problemset/problem/1369/F
Code:
  1. import itertools as it
  2. import collections as cc
  3. import heapq as hp
  4. import sys
  5. I=lambda : list(map(int,input().split()))
  6. import operator as op
  7. from functools import reduce
  8. n,m=I()
  9. w=I()
  10. de=[0]*n
  11. for i in range(n):
  12. de[i]=[0]
  13. pre=[0]*m
  14. visi=[0]*m
  15. for i in range(m):
  16. x,y=I()
  17. x-=1;y-=1
  18. pre[i]=[x,y]
  19. de[x][0]+=1
  20. de[y][0]+=1
  21. de[x].append(i)
  22. de[y].append(i)
  23.  
  24. an=[]
  25. te=[]
  26. ans=[]
  27. for i in range(n):
  28. if de[i][0]<=w[i]:
  29. te.append(i)
  30.  
  31. while len(te)>0:
  32. tem=te.pop()
  33. for i in range(1,len(de[tem])):
  34. fr=de[tem][i]
  35. if not visi[fr]:
  36. visi[fr]=1
  37. ans.append(fr+1)
  38. fo=pre[fr][0]+pre[fr][1]-tem
  39. de[fo][0]-=1
  40. if de[fo][0]==w[fo]:
  41. te.append(fo)
  42.  
  43.  
  44.  
  45. if len(ans)==m:
  46. print("ALIVE")
  47. print(*ans[::-1])
  48. else:
  49. print("DEAD")

Nhận xét

Bài đăng phổ biến từ blog này

Sinh Test trong Python va code AC

Học về Segment Tree

Cách tính a*b mod m , a^b mod m , a^(-1) mod m với m không phải là số nguyên tố (inversion có nghĩa khi (a,m)=1)