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

Previous submission (verdict: Wrong answer on test 3):
#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 && r<(y+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: 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();

}