Issue with wordpress pagination: last 2 posts show again on second page

You can try using this code.its perfect working and already tested.

<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
if ($paged == "1") {
    $args = array(
        'post_type' => 'post',
        'post_status' => 'publish',
        'offset' => 0,
        'posts_per_page' => 5
    );
} else {
    $offset = $paged * 5;
    $offset = $offset - 5;
    $args = array(
        'post_type' => 'post',
        'post_status' => 'publish',
        'offset' => $offset,
        'posts_per_page' => 5
    );
}

$loop = new WP_Query($args);
if ($loop->have_posts()) :
while ($loop->have_posts()) : $loop->the_post();

            /*Your Code */

endwhile;
?>
<div class="pagination-grp">
    <?php
    $big = 999999999; // need an unlikely integer
    //$i=1;

    echo paginate_links(array(
        'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
        'format' => '?paged=%#%',
        'current' => max(1, get_query_var('paged')),
        'prev_text' => __('<'),
        'next_text' => __('>'),
        'total' => $loop->max_num_pages

    ));
    wp_reset_postdata();
    endif;
    ?>
</div>