PowerShell, 7171 69 bytes
-2 bytes thanks to mazzy
$z=92
$args|%{$i+=($x=$x=2*($_-1,1eq92)[$_-eq92]1)*($z-ne$_)
' '*$i+($z=$_)
$i+=$x}
Takes input by splatting. This also saves us two bytes because we can just treat it as an int instead of writing '\'
which we do twice.