fork download
  1. # Đọc toàn bộ các token từ input
  2. inp = open(0).read().split()
  3. if inp:
  4. t = int(inp[0])
  5. ptr = 1
  6.  
  7. for _ in range(t):
  8. n = int(inp[ptr])
  9. ptr += 1
  10.  
  11. has = set()
  12. total = 0
  13. ans = 0
  14.  
  15. # Đọc n cặp số (x, y)
  16. for _ in range(n):
  17. x = int(inp[ptr])
  18. y = int(inp[ptr+1])
  19. ptr += 2
  20. has.add(x)
  21. total += y
  22. if x > ans:
  23. ans = x
  24.  
  25. # Tính toán kết quả MEX tối đa
  26. cost = 0
  27. v = 0
  28. while True:
  29. c = 1 if (v in has or v == 0) else (1 << (v - 1))
  30. cost += c
  31.  
  32. if cost <= total:
  33. if v + 1 > ans:
  34. ans = v + 1
  35. v += 1
  36. else:
  37. break
  38.  
  39. print(ans)
  40.  
Success #stdin #stdout 0.09s 14020KB
stdin
10
4
2 2
0 3
4 1
1 2
1
10 1
1
2 3
3
0 1
2 2
3 1
3
0 4
1 2
2 1
1
0 100
2
2 7
3 1
2
0 1
3 3
3
0 1
1 1
59 1
4
0 5
1 1
2 3
3 1
stdout
5
10
3
4
4
7
4
3
59
4