f = ->a {a.map.with_index.sort.map(&:last).each_with_object([]).with_index {|(i, b), j| b[i] = j}}
g = ->a {p f.(a)}
g.([1,100,10,10000,1000])
g.([3,1,4,1,5,9,2])
g.([0,1,0,1,0,1,0,1])
ZiA9IC0+YSB7YS5tYXAud2l0aF9pbmRleC5zb3J0Lm1hcCgmOmxhc3QpLmVhY2hfd2l0aF9vYmplY3QoW10pLndpdGhfaW5kZXgge3woaSwgYiksIGp8IGJbaV0gPSBqfX0KZyA9IC0+YSB7cCBmLihhKX0KZy4oWzEsMTAwLDEwLDEwMDAwLDEwMDBdKQpnLihbMywxLDQsMSw1LDksMl0pCmcuKFswLDEsMCwxLDAsMSwwLDFdKQ==
[0, 2, 1, 4, 3]
[3, 0, 4, 1, 5, 6, 2]
[0, 4, 1, 5, 2, 6, 3, 7]