#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# author: bt3gl

# Given a fixed-length integer array arr, duplicate each occurrence of zero, 
# shifting the remaining elements to the right.


def duplicate_zeros(arr: list[int]) -> list[int]:
        """
        Do not return anything, modify arr in-place instead.
        """
        
        i = 0
        while i < len(arr):
            
            if arr[i] == 0 and i != len(arr) - 1:

                range_here = len(arr) - (i + 2)
                while range_here > 0:
                    arr[i + range_here + 1] = arr[i + range_here]
                    range_here -= 1

                arr[i+1] = 0
                i += 2
            
            else:
                i += 1


        return arr


if __name__ == "__main__":

    arr = [1, 0, 2, 3, 0, 4, 5, 0]
    print(duplicate_zeros(arr))