Problem: 2050D - Digital string maximization
Language: C++23 (GCC 14-64, msys2)

Previous submission (verdict: Wrong answer on test 1):
#include <iostream>
#include <vector>
#include <bits/stdc++.h>
#include <algorithm>
#include <set>
#include <map>

using namespace std;
#define ll long long
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()


int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int tc;
    cin>>tc;
    for(int _=0; _<tc; _++){
        string s;
        cin>>s;
        // BRUTE FORCE 1 ********************************************************************************************************
        // bool flag = true;
        // while(flag){
        //     if(s.length()==1){
        //         flag=false;
        //     }
        //     for(int i=1; i<s.length(); i++){
        //         if(s[i]>(s[i-1]+1) && s[i]!='0'){
        //             char temp = s[i-1];
        //             s[i-1]=s[i]-1;
        //             s[i]=temp;
        //             break;
        //         }
        //         if(i==(s.length()-1)){
        //             flag=false;
        //         }
        //     }
        // }
        // ***********************************************************************************************************************

        for(int i=1; i<s.length(); i++){
            char a = s[i];
            for(int j=i-1; j>=0; j--){
                // cout<<"String: "<<s[i]<<" "<<s[j]<<" "<<s<<endl;
                if(s[i]>s[j]+1 && s[i]!=0){
                    char temp = s[j];
                    s[j]=s[i]-1;
                    s[i]=temp;
                    i--;
                }
                
            }
        }


        cout<<s<<endl;
    }
    return 0;
}

Submission (verdict: Accepted):
#include <iostream>
#include <vector>
#include <bits/stdc++.h>
#include <algorithm>
#include <set>
#include <map>

using namespace std;
#define ll long long
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()


int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int tc;
    cin>>tc;
    for(int _=0; _<tc; _++){
        string s;
        cin>>s;
        // BRUTE FORCE 1 ********************************************************************************************************
        // bool flag = true;
        // while(flag){
        //     if(s.length()==1){
        //         flag=false;
        //     }
        //     for(int i=1; i<s.length(); i++){
        //         if(s[i]>(s[i-1]+1) && s[i]!='0'){
        //             char temp = s[i-1];
        //             s[i-1]=s[i]-1;
        //             s[i]=temp;
        //             break;
        //         }
        //         if(i==(s.length()-1)){
        //             flag=false;
        //         }
        //     }
        // }
        // ***********************************************************************************************************************

        for(int i=1; i<s.length(); i++){
            char a = s[i];
            while(i>0 && s[i]!=0 && (s[i])>(s[i-1]+1)){
                char temp = s[i-1];
                s[i-1]=s[i]-1;
                s[i]=temp;
                if(i>1){
                    i--;
                } else {
                    break;
                }
            }
        }

        cout<<s<<endl;
    }
    return 0;
}