fork download
  1. x={o->(o-o[0])?o[o.indexOf(o.min())]+=1:o<<1;o}
  2. verify={i,o->a=x(i.toList());println a==o?"Pass ${i}->${o}=${a}":"Fail ${i}->${o}!=${a}";a}
  3. verify([1],[1, 1])
  4. verify([2],[2, 1])
  5. verify([1, 1],[1, 1, 1])
  6. verify([3, 3, 3, 3, 3],[3, 3, 3, 3, 3, 1])
  7.  
  8. verify([1, 2],[2, 2])
  9. verify([2, 1],[2, 2])
  10. verify([3, 1, 1],[3, 2, 1])
  11. verify([3, 2, 1],[3, 2, 2])
  12. verify([3, 2, 2],[3, 3, 2])
  13. verify([3, 3, 2],[3, 3, 3])
  14. verify([3, 4, 9, 3],[4, 4, 9, 3])
Success #stdin #stdout #stderr 0.57s 332352KB
stdin
Standard input is empty
stdout
Pass [1]->[1, 1]=[1, 1]
Pass [2]->[2, 1]=[2, 1]
Pass [1, 1]->[1, 1, 1]=[1, 1, 1]
Pass [3, 3, 3, 3, 3]->[3, 3, 3, 3, 3, 1]=[3, 3, 3, 3, 3, 1]
Pass [1, 2]->[2, 2]=[2, 2]
Pass [2, 1]->[2, 2]=[2, 2]
Pass [3, 1, 1]->[3, 2, 1]=[3, 2, 1]
Pass [3, 2, 1]->[3, 2, 2]=[3, 2, 2]
Pass [3, 2, 2]->[3, 3, 2]=[3, 3, 2]
Pass [3, 3, 2]->[3, 3, 3]=[3, 3, 3]
Pass [3, 4, 9, 3]->[4, 4, 9, 3]=[4, 4, 9, 3]
stderr
Java HotSpot(TM) Client VM warning: No monotonic clock was available - timed services may be adversely affected if the time-of-day clock changes