Source Code
#include <bits/stdc++.h>

using namespace std;
#define pb push_back
typedef long long ll;


int main(){

	int T,n,k,t,a,c=0;
          cin>>n;
          string s;
         unordered_map<string,pair<set<int>,int>>ma;

         for(t=0;t<n;t++){
           cin>>s;
           if(ma[s].first.size()==0){

                    for(int x=1;x<min(7,(int)s.size());x++){
                       string nu=s.substr(s.size()-x,x);
                        if(nu[0]<'0'||nu[0]>'9')
                            break;
                        else if(nu[0]!='0'){
                          ma[s.substr(0,s.size()-x)].first.insert(stoi(nu));
                            }
                    }



               ma[s].first.insert(0);
              cout<<"ok\n";
           }else{


            for(int y=ma[s].second;y<1000000;y++){
               ma[s].second=y;
               if(ma[s].first.find(y)==ma[s].first.end()){
                  ma[s].first.insert(y);
                  if(y==0){
                     cout<<"ok\n";
                  }else{
                     ma[(s+to_string(y))].first.insert(0);
                     cout<<s<<y<<"\n";
                   }
                  break;
               }

             }
           }
         }
}
Copy
Registration System mohammed_mraish
GNU G++17
647 ms
24.0 MB
Wrong Answer