Блог пользователя lohitpt252003

Автор lohitpt252003, история, 6 месяцев назад, По-английски

You are given an arr (len(arr) <= 1e5) (-1e9 <= arr[i] <= 1e9) and q (<= 1e5) queries, now each query is of the form, (l, r, x) (1 <= l <= r <= len(arr), x can be any 32 bit integer) for each query u need to output the sum(arr[i]) such that l <= i <= r and arr[i] >= x.

I am stuck with this problem can anyone solve this problem?

  • Проголосовать: нравится
  • -16
  • Проголосовать: не нравится

»
6 месяцев назад, скрыть # |
 
Проголосовать: нравится -6 Проголосовать: не нравится

Auto comment: topic has been updated by lohitpt252003 (previous revision, new revision, compare).

»
6 месяцев назад, скрыть # |
Rev. 2  
Проголосовать: нравится +23 Проголосовать: не нравится

sort the queries to the decreasing of x and sort the array decreasing and use segment tree (ofc you need to save the original index of the queries and the array).

  • »
    »
    6 месяцев назад, скрыть # ^ |
     
    Проголосовать: нравится -22 Проголосовать: не нравится

    Can u please write the code?

    • »
      »
      »
      6 месяцев назад, скрыть # ^ |
       
      Проголосовать: нравится +7 Проголосовать: не нравится

      I think this should work.

      Code

      On the test:

      1
      4 4
      1 2 3 4
      1 3 2
      2 3 2
      2 3 4
      1 4 2
      

      It prints:

      5
      5
      0
      9
      
    • »
      »
      »
      6 месяцев назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится
  • »
    »
    10 дней назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    why u so good bro