pastebin

Paste Search Dynamic
Recent pastes
fadd
  1. def fadd(st,no,p1,n,l2,r2)
  2.        
  3.         if r2<p1 || p1<l2 then
  4.                 return
  5.         elsif l2==r2 then
  6.                 return st[no]+=n
  7.         else
  8.                 st[no]+=n
  9.                 m=(l2+r2)/2
  10.                 if p1<=m then
  11.                         fadd(st,no*2+1,p1,n,l2,m)
  12.                 else
  13.                         fadd(st,no*2+2,p1,n,m+1,r2)
  14.                 end
  15.         end
  16. end
  17.  
  18. def fsum(st,no,l,r,l2,r2)
  19.         if r<l2 || r2<l then
  20.                 return 0
  21.         elsif l2==r2 then
  22.                 return st[no]
  23.         elsif l<=l2 && r2<=r then
  24.                 return st[no]
  25.         else
  26.                 m=(l2+r2)/2
  27.                 res=fsum(st,no*2+1,l,r,l2,m)
  28.                 res+=fsum(st,no*2+2,l,r,m+1,r2)
  29.                 return res
  30.         end
  31.  
  32. end
  33. st=array.new(270000,0)
  34. maxr=131071
  35. fadd(st,0,44,100,0,maxr)
  36. l,r=gets.split(" ").map{|e| e.to_i}
  37. p fsum(st,0,l,r,0,maxr)
Parsed in 0.010 seconds