Problem sa ispisom transformisanog niza

Pitanje ili opis problema

Problem sa ispisom transformisanog niza

Link ka zadatku ili odgovarajućoj stranici

https://petlja.org/biblioteka/r/problemi/zbirka-napredni-nivo/trobojka
Sa ovim zadatkom imam problem, konkretno ne znam kako da dobijem ispis kao u test primeru u tekstu zadatka.
Moj kod:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,a,b;
cin>>n;
int arr[n];
for(int i=0; i<n; i++){
cin>>arr[i];
}
cin>>a>>b;
for(int i=0; i<n; i++){
if(arr[i]<a){
cout<<arr[i]<<endl;
}
}
for(int i=0; i<n; i++){
if(arr[i]>=a && arr[i]<=b){
cout<<arr[i]<<endl;
}
}
for(int i=0; i<n; i++){
if(arr[i]>b){
cout<<arr[i]<<endl;
}
}
return 0;
}

program izgleda ok. zbirka ima problem sa graderom tako da je verovatno do toga. obečavaju da će to srediti ovih dana. međutim u suštini program i da ima ispravan output ne radi ono što se traži a to je da se reorganizuje zapise u tom istom array-u. drugim rečima “array partitioning with two pivots”. ideja slična kao kod algoritma za traženje mediane ili kod quicsorta.