fork download
  1. import math
  2. def find(u, par):
  3.  
  4. if par[u] != u:
  5. par[u] = find(par[u], par)
  6. return par[u]
  7.  
  8. def union(u, v, par, size):
  9. u_root = find(u, par)
  10. v_root = find(v, par)
  11.  
  12. if u_root == v_root:
  13. return
  14.  
  15.  
  16. if size[u_root] < size[v_root]:
  17. par[u_root] = v_root
  18. size[v_root] += size[u_root]
  19. else:
  20. par[v_root] = u_root
  21. size[u_root] += size[v_root]
  22.  
  23. def ip():
  24. return map(int,input().split())
  25.  
  26. def f(k):
  27. # print()
  28. curr=0
  29. rem=-1
  30. for i in range(n):
  31. # print(i,curr,rem)
  32.  
  33. if curr==0 and b[i]>=k-1:
  34. curr=1
  35. continue
  36. if curr<=a[i] and b[i]>=k-(curr+1):
  37. curr+=1
  38. # print(i,curr,rem)
  39. if curr>=k:
  40. return True
  41. return False
  42.  
  43.  
  44.  
  45.  
  46.  
  47. T=1
  48. T=int(input())
  49. for __ in range(T):
  50. n,m=ip()
  51. b=[]
  52. for _ in range(m):
  53. l,w,h=ip()
  54. b.append(sorted((l,w,h)))
  55.  
  56. lst=[1,2]
  57. while len(lst)<n:
  58. lst.append(lst[-1]+lst[-2])
  59. res=[0 for _ in range(m)]
  60.  
  61. for i in range(m):
  62. l,w,h=b[i]
  63. if l>=lst[-1] and w>=lst[-1] and h>=lst[-1]+lst[-2]:
  64. res[i]=1
  65.  
  66. print("".join(str(x) for x in res))
Success #stdin #stdout 0.13s 14072KB
stdin
2
5 4
3 1 2
10 10 10
9 8 13
14 7 20
2 6
3 3 3
1 2 1
2 1 2
3 2 2
2 3 1
3 2 4
stdout
0010
100101