Problem: 2050D - Digital string maximization
Language: C++17 (GCC 7-32)

Previous submission (verdict: Time limit exceeded on test 8):
#include <bits/stdc++.h>
using namespace std;
#define int long long int



int checku2(int a,int n){
  int e=(3*a*a);
  int countu=0;
  if(e<=n) countu++;
  e=(a+1)*(a)+(a+1)*(a)+(a*a);
  if(e<=n) countu++;
  e=(a+1)*(a+1)+(a+1)*(a)+(a+1)*(a);
  if(e<=n) countu++;
  e=(a+2)*(a)+(a+2)*(a)+(a*a);
  if(e<=n){
  countu++;
  }
  return countu;
}
int checku1(int a,int n){
  int e=(3*a*a);
  int countu=0;
  if(e<=n) countu++;
   e=(((a+1)*(a))+((a+1)*(a))+(a*a));
   if(e<=n) countu++;
   return countu;
}
int checku(vector<vector<int>> &vecu,int a[],int b){
  if(a[b]==0){
    vecu[b][0]=0;
    return 1;
  }
  else if(a[b]==2){
    int x=checku(vecu,a,vecu[b][1])+checku(vecu,a,vecu[b][2]);
    vecu[b][0]=x;
    return 1+x;
  }
  else{
    int x=checku(vecu,a,vecu[b][1]);
    vecu[b][0]=x;
    return 1+x;
  }
  return 0;
}
void sol()
{
   int n;
  //  cin>>n;
  //  int a[n];
  //  vector<string> vecu(n);
  //  int z=0;
  //  int x=0;
  // for(int i=0;i<n;i++){
  //   cin>>a[i];
  //   z=z+a[i];
  // }
  string t;
  cin>>t;
  n=t.length();
  vector<int> vecu(n,-1);
  string l="";
  int y=0;
  while(l.size()!=n){
   if(vecu[y]==1){
      y++;
      continue;
   }
   else{
    int x=(int)(t[y]-48);
    int r=y+1;
    int z=y;
    int f=1;
    while(r<n && f<9){
      if(vecu[r]==-1){
      int b=(int)(t[r]-48)-f;
      if(b>x){
        x=b;
        z=r;
      }
      f++;
      }
      r++;
    }
    l=l+(char)(x+48);
    vecu[z]=1;
   }
  }
  cout<<l;
  //  for(int i=0;i<n;i++){
    
  //  }


//    int l=n;
//   //  if(t[0]=='s'){
//   for(int i=0;i<n;i++){
//    if(t[i]=='p'){
//     l=i;
//     break;
//    }
//    x++;
//   }
//   //  }
//   // if(t[n-1]=='p'){
//   for(int i=n-1;i>=l;i--){
//    if(t[i]=='s'){
//     break;
//    }
//    y++;
//   }
//   // }
//   // cout<<x<<" "<<y<<" "<<l;
//   if(z==n){
//     cout<<"Yes";
//   }
//   else if(x+y==n){
//     if((x>0 && t[0]=='s') || y==0){
//       cout<<"Yes";
//     }
//     else if((y>0 && t[n-1]=='p') || x==0){
//       cout<<"Yes";
//     }
//     else{
// cout<<"NO";
//     }
//   }
//   else{
//     cout<<"NO";
//   }
  //  for(int i=0;i<n;i++){
  //   cout<<b[i]<<" ";
  //  }
   //  for(int i=0;i<n;i++){
  //   for(int j=0;j<l;j++){
  //     cout<<a[j][i]<<" ";
  //   }
  //   cout<<endl;
  //  }
  //  cout<<endl;
//  cout<<ansu;
     //  for(int i=0;i<n;i++){
  //   cout<<z[i];
  //  }
  // int x,y;
  // cin>>x>>y;
  //  cout<<ans;
    //  cout<<c1;
  //  cout<<ans<<endl;
  cout<<endl;
// cout<<f<<endl;
 return ;
 }
int32_t main(){
    int t;
    cin>>t;
    while(t--){
        sol();
    }
    // sol();

}




Submission (verdict: Accepted):
#include <bits/stdc++.h>
using namespace std;
#define int long long int


int pr(int x,vector<int> &pt){
  int a;
  a=pt[x];
  if(a==-1){
    return -1;
  }
  while(a!=x){
    pt[x]=a;
    x=a;
    a=pt[x];
  }
  return 0;
}
int checku(string x,string y){
  // cout<<x<<"dfhj"<<y<<endl;
  int maxl = max(x.length(), y.length());
  if(x.length()!=maxl){
    string l(maxl-x.length(),'0');
    x=l+x;
  }
  else{
    string l(maxl-y.length(),'0');
    y=l+y;
  }
   for (int i = 0; i < maxl; i++) {
        if (x[i] > y[i]) {
            return 0; // `a` is greater
        } else if (x[i] < y[i]) {
            return 1; // `b` is greater
        }
        else{
          continue ;
        }
    }
  return 0;
}
string cheo(string x,string y){
  // cout<<x<<" "<<y<<" ";
    int maxl = max(x.length(), y.length());
  if(x.length()!=maxl){
    string l(maxl-x.length(),'0');
    x=l+x;
  }
  else{
    string l(maxl-y.length(),'0');
    y=l+y;
  }
  string l="";
  for(int i=0;i<maxl;i++){
    if(x[i]==y[i]){
      l=l+"0";
    }
    else{
      l=l+"1";
    }
  }
  // cout<<l<<endl;
  return l;
}
void sol()
{
 int n;
//  cin>>n;
//  int a[n];
string t;
cin>>t;
n=t.length();
int z=0;
// vector<pair<int,int>> vecu;
// for(int i=0;i<n;i++){
  
// }
for(int i=0;i<n;i++){
  int x=t[i]-'0';
  int b=i;
  for(int j=i;j<min((i+10),n);j++){
    int y=t[j]-'0'-(j-i);
    if(y>x){
    b=j;
    x=y;
    }
  }
  while(b>i){
    swap(t[b],t[b-1]);
    b--;
  }
  t[i]=(char)(x+48);
  // cout<<t<<endl;
}
    // for (int i = 0; i < t.size(); i++) {
    //     int best = t[i] - '0', pos = i;
    //     for (int j = i; j < min(i + 10, (int) t.size()); j++) {
    //         if (t[j] - '0' - (j - i) > best) {
    //             best = t[j] - '0' - (j - i);
    //             pos = j;
    //         }
    //     }
    //     while (pos > i) {
    //         swap(t[pos], t[pos - 1]);
    //         pos--;
    //     }
    //     t[i] = char(best + '0');
    // }

cout<<t;
// //  vector<vector<int>> vecu(l+1);
// int z=0;
//  for(int i=0;i<n;i++){
//   cin>>a[i];
//  }
// cout<<ansu<<endl;
//  string t1,t2;
//  cin>>t1>>t2;
//  vector<vector<int>> vecu1(n+1,(vector<int> (26,0)));
//  vector<vector<int>> vecu2(n+1,(vector<int> (26,0)));

//  cout<<endl;
 
//  int a=t.length();
//  cout<<ansu<<endl;
// cout<<ansu;
cout<<endl;
//  cout<<ansu<<endl;
 return ;
 
 }
int32_t main(){
    int t;
    cin>>t;
    while(t--){
        sol();
    }
    // sol();
}