[Perl 6](http://perl6.org/), 62 bytes
===

 {(0,{$_-@_+@_*2*($_!>@_||$_-@_∈@_)given @_[*-1]}...*)[^$_]}

[Try it online!](https://tio.run/##K0gtyjH7n1upoJamYPu/WsNAp1olXtchXtshXstIS0MlXtHOIb6mBiz2qKPDIV4zPbMsNU/BIT5aS9cwtlZPT09LMzpOJT629n9xYqVCmoapgab1fwA "Perl 6 – Try It Online")