fork download
  1. import math
  2. def ip():
  3. return map(int,input().split())
  4.  
  5. # print(f(1))
  6. # print(f(10))
  7. # print(f(100))
  8. # print(f(200))
  9. # print(f(20))
  10. # print(f(99))
  11. # print(f(19))
  12. T=int(input())
  13. # T=1
  14. for __ in range(T):
  15. n=int(input())
  16. lst=[]
  17. for _ in range(n):
  18. tmp=tuple(ip())
  19. lst.append(tmp)
  20.  
  21. curr=-1
  22.  
  23. #l,r,c,i
  24. one=[float('inf'),float('-inf'),float('inf'),-1]
  25.  
  26. #num,c,i
  27. mx=[float('-inf'),float('inf'),-1]
  28. mn=[float('inf'),float('inf'),-1]
  29.  
  30. res=[]
  31. for i in range(n):
  32.  
  33. l,r,c=lst[i]
  34.  
  35. #updating mn and mx
  36.  
  37. if l<mn[0]:
  38. mn=[l,c,i]
  39. elif mn[0]==l and c<mn[1]:
  40. mn=[l,c,i]
  41.  
  42.  
  43. if r>mx[0]:
  44. mx=[r,c,i]
  45. elif mx[0]==r and c<mx[1]:
  46. mx=[r,c,i]
  47.  
  48.  
  49. if one[0]>mn[0] or one[1]<mx[0]:
  50. one=[float('inf'),float('-inf'),float('inf'),-1]
  51.  
  52. if l==mn[0] and r==mx[0]:
  53. if one[-1]==-1:
  54. one=[l,r,c,i]
  55. else:
  56. one=[l,r,min(one[2],c),i]
  57.  
  58. a=float('inf')
  59. a=min(a,one[2])
  60.  
  61. a=min(a,mx[1]+mn[1])
  62.  
  63.  
  64. res.append(a)
  65.  
  66.  
  67. # print("easdfsdfr")
  68. for i in res:
  69. print(i)
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
Success #stdin #stdout 0.09s 14128KB
stdin
3
2
2 4 20
7 8 22
2
5 11 42
5 11 42
6
1 4 4
5 8 9
7 8 7
2 10 252
1 11 271
1 10 1
stdout
20
42
42
42
4
13
11
256
271
271