Problem: 2050D - Digital string maximization
Language: c++23 

Code 1:
#include<bits/stdc++.h>
using namespace std;
int T, a[200001];
char s[300000];
int main(){
	scanf("%d", &T);
	while(T--){
		scanf(" %s", s + 1);
		int n = (int)strlen(s + 1);
		for(int i = 1; i <= n; ++i)
			a[i] = s[i] - '0';
		for(int i = 1; i <= n; ++i){
			if(i == 1)
				continue;
			if(a[i] - a[i - 1] > 1){
				if(i == 2){
					--a[i];
					swap(a[i - 1], a[i]);
					continue;
				}
				if(a[i] - a[i - 2] > 2){
					if(i == 3){
						a[i] -= 2;
						swap(a[i - 1], a[i]);
						swap(a[i - 2], a[i - 1]);
						continue;
					}
					if(a[i] - a[i - 3] > 3){
						if(i == 4){
							a[i] -= 3;
							swap(a[i - 1], a[i]);
							swap(a[i - 2], a[i - 1]);
							swap(a[i - 3], a[i - 2]);
							continue;
						}
						if(a[i] - a[i - 4] > 4){
							if(i == 5){
								a[i] -= 4;
								swap(a[i - 1], a[i]);
								swap(a[i - 2], a[i - 1]);
								swap(a[i - 3], a[i - 2]);
								swap(a[i - 4], a[i - 3]);
								continue;
							}
							if(a[i] - a[i - 5] > 5){
								if(i == 6){
									a[i] -= 5;
									swap(a[i - 1], a[i]);
									swap(a[i - 2], a[i - 1]);
									swap(a[i - 3], a[i - 2]);
									swap(a[i - 4], a[i - 3]);
									swap(a[i - 5], a[i - 4]);
									continue;
								}
								if(a[i] - a[i - 6] > 6){
									if(i == 7){
										a[i] -= 6;
										swap(a[i - 1], a[i]);
										swap(a[i - 2], a[i - 1]);
										swap(a[i - 3], a[i - 2]);
										swap(a[i - 4], a[i - 3]);
										swap(a[i - 5], a[i - 4]);
										swap(a[i - 6], a[i - 5]);
										continue;
									}
									if(a[i] - a[i - 7] > 7){
										if(i == 8){
											a[i] -= 7;
											swap(a[i - 1], a[i]);
											swap(a[i - 2], a[i - 1]);
											swap(a[i - 3], a[i - 2]);
											swap(a[i - 4], a[i - 3]);
											swap(a[i - 5], a[i - 4]);
											swap(a[i - 6], a[i - 5]);
											swap(a[i - 7], a[i - 6]);
											continue;
										}
										if(a[i] - a[i - 8] > 8){
											a[i] -= 8;
											swap(a[i - 1], a[i]);
											swap(a[i - 2], a[i - 1]);
											swap(a[i - 3], a[i - 2]);
											swap(a[i - 4], a[i - 3]);
											swap(a[i - 5], a[i - 4]);
											swap(a[i - 6], a[i - 5]);
											swap(a[i - 7], a[i - 6]);
											swap(a[i - 8], a[i - 7]);
											continue;
										}
										else{
											a[i] -= 7;
											swap(a[i - 1], a[i]);
											swap(a[i - 2], a[i - 1]);
											swap(a[i - 3], a[i - 2]);
											swap(a[i - 4], a[i - 3]);
											swap(a[i - 5], a[i - 4]);
											swap(a[i - 6], a[i - 5]);
											swap(a[i - 7], a[i - 6]);
											continue;
										}
									}
									else{
										a[i] -= 6;
										swap(a[i - 1], a[i]);
										swap(a[i - 2], a[i - 1]);
										swap(a[i - 3], a[i - 2]);
										swap(a[i - 4], a[i - 3]);
										swap(a[i - 5], a[i - 4]);
										swap(a[i - 6], a[i - 5]);
										continue;
									}
								}
								else{
									a[i] -= 5;
									swap(a[i - 1], a[i]);
									swap(a[i - 2], a[i - 1]);
									swap(a[i - 3], a[i - 2]);
									swap(a[i - 4], a[i - 3]);
									swap(a[i - 5], a[i - 4]);
									continue;
								}
							}
							else{
								a[i] -= 4;
								swap(a[i - 1], a[i]);
								swap(a[i - 2], a[i - 1]);
								swap(a[i - 3], a[i - 2]);
								swap(a[i - 4], a[i - 3]);
								continue;
							}
						}
						else{
							a[i] -= 3;
							swap(a[i - 1], a[i]);
							swap(a[i - 2], a[i - 1]);
							swap(a[i - 3], a[i - 2]);
							continue;
						}
					}
					else{
						a[i] -= 2;
						swap(a[i - 1], a[i]);
						swap(a[i - 2], a[i - 1]);
						continue;
					}
				}
				else{
					--a[i];
					swap(a[i - 1], a[i]);
					continue;
				}
			}
		}
		for(int i = 1; i <= n; ++i)
			printf("%d", a[i]);
		printf("\n");
	}
}

Code 2:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 2e5 + 5;
string s;
ll t;
int main(){
	cin >> t;
	while(t--){
		cin >> s;
		for(int i = 0; i < s.size(); i++){
			ll maxx = 0, k = i;
			for(int j = i + 1; j <= i + 10 && j < s.size(); j++){
				if((s[j] - '0') - j + i - (s[i] - '0') > maxx){
					maxx = (s[j] - '0') - j + i - (s[i] - '0');
					k = j;
				}
			}
			swap(s[i], s[k]);
			s[i] = s[i] - k + i;
		}
		cout << s << endl;
	}
	return 0;
}

Answer: 1