Переставить в обратном порядке элементы массива, расположенные между элементами AK и AL, включая эти элементы. Java

Пример: Массив : 1 12 33 5 4 2 Ответ: 1 4 5 33 12 3

Не могу понять , почему массив выдает изначально введённый массив.

import java.util.Scanner;

public class One {
    public static  void main (String[] args){
        Scanner in = new Scanner(System.in);
        int b,x,k,a[],l,n;
        n=in.nextInt();
        a = new int[n];
        k= in.nextInt();
        l= in.nextInt();
        for(int i=0;i<n;i++){
            a[i]=in.nextInt();
        }
        while ((k>1)&(l>k)&(l<n)) {

            for (int i = k; i > (l-k)/2+k; i++) {
                x = a[k];
                a[k] =a[l];
                a[l] =x;
            }
        }
        for(int i=0;i<n;i++){
            System.out.println(a[i]);
        }


    }
}

Ответы (1 шт):

Автор решения: MBo

Всё, что нужно для обращения фрагмента:

 while (k<l) {
            x = a[k];
            a[k++] =a[l];
            a[l--] =x;
    }

ideone

→ Ссылка