Advertisement
Guest User

Untitled

a guest
Sep 25th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. #!/bin/ruby
  2.  
  3. require 'json'
  4. require 'stringio'
  5.  
  6. def minimumBribes(q)
  7. count = 0
  8. number_of_swaps = []
  9. while(!ordered?(q))
  10. i = first_unordered_index(q)
  11. number_of_swaps[q[i]] = (number_of_swaps[q[i]] || 0) + 1
  12. return 'Too chaotic' if number_of_swaps[q[i]] > 2
  13. swap(q, i, i + 1)
  14. count += 1
  15. end
  16. return count
  17. end
  18.  
  19. def ordered?(q)
  20. q.sort == q
  21. end
  22.  
  23. def first_unordered_index(q)
  24. i = 0
  25. while(i < q.size - 1 && q[i]<q[i+1])
  26. i+=1
  27. end
  28. i
  29. end
  30.  
  31. def swap(array, i, j)
  32. temp = array[i]
  33. array[i] = array[j]
  34. array[j] = temp
  35. end
  36.  
  37. t = gets.to_i
  38.  
  39. t.times do |t_itr|
  40. n = gets.to_i
  41.  
  42. q = gets.rstrip.split(' ').map(&:to_i)
  43.  
  44. puts minimumBribes q
  45. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement