fork download
  1. # your code goes here
  2. import sys
  3. from bisect import bisect_right
  4.  
  5. def main():
  6. # Fast I/O reading all input at once
  7. input_data = sys.stdin.read().split()
  8. if not input_data:
  9. return
  10.  
  11. iterator = iter(input_data)
  12.  
  13. n = int(next(iterator))
  14.  
  15. # Read array b (1-indexed matching C++ logic)
  16. b = [int(next(iterator)) for _ in range(n)]
  17.  
  18. # Sort the array (0-indexed in Python)
  19. b.sort()
  20.  
  21. # Calculate prefix sums
  22. prefix = [0] * (n + 1)
  23. for i in range(1, n + 1):
  24. prefix[i] = prefix[i - 1] + b[i - 1]
  25.  
  26. total_sum = prefix[n]
  27.  
  28. q = int(next(iterator))
  29.  
  30. results = []
  31. for _ in range(q):
  32. target = int(next(iterator))
  33.  
  34. # bisect_right finds the count of elements <= target
  35. # which directly corresponds to 'g' in your C++ code
  36. g = bisect_right(b, target)
  37.  
  38. left_part = target * g - prefix[g]
  39. right_part = (total_sum - prefix[g]) - target * (n - g)
  40.  
  41. results.append(str(left_part + right_part))
  42.  
  43. # Print all results separated by newline
  44. sys.stdout.write('\n'.join(results) + '\n')
Success #stdin #stdout 0.08s 14024KB
stdin
Standard input is empty
stdout
Standard output is empty