Z jakiego kompilatora korzystasz, że skompilował Ci się ten kod?
1. Zła alokacja pamięci na tablice:
int n;
cin >> n;
int l;
int tablica[n];
int acilbat[l];
Nie tak alokujemy dynamicznie pamięć, musisz użyć:
int *tablica = new int[n];
2. Po czym twierdzisz, że "tablica" == "acilbat" ? Z tego co widzę odwracasz tablicę, więc zamiana:
acilbat[l] = tablica[o];
//na
tablica[o] = acilbat[l];
Robi dużą różnicę.
3. Wychodzisz poza zakres tablicy w pierwszej pętli "for"