Advertisement
Guest User

Untitled

a guest
Dec 10th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.18 KB | None | 0 0
  1. #include <iostream>
  2. #include <bits/stdtr1c++.h>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.     set<char> se;
  8.     se.insert('a');
  9.     se.insert('b');
  10.     se.insert('d');
  11.     se.insert('e');
  12.     se.insert('o');
  13.     se.insert('p');
  14.     se.insert('q');
  15.     int t,n,i,j;
  16.     string s;
  17.     cin>>t;
  18.     while(t--){
  19.         cin>>n>>n;
  20.         cin>>s;
  21.         if(n==0){
  22.             for(i=s.size()-1;i>=0;i--){
  23.                 if(s[i]!='z'){
  24.                     s[i]++;
  25.                     while(se.count(s[i]))
  26.                         s[i]++;
  27.                     if(s[i]=='g') s[i]++;
  28.                     cout<<s<<endl;
  29.                     break;
  30.                 }else
  31.                     s[i]='c';
  32.             }
  33.             if(i==-1)
  34.                 cout<<i<<endl;
  35.             continue;
  36.         }
  37.         if(se.count(s[s.size()-1])){
  38.             switch(s[s.size()-1]){
  39.             case 'a':
  40.                 for(i=0;i<s.size()-1;i++)
  41.                     cout<<s[i];
  42.                 cout<<'b'<<endl;
  43.                 break;
  44.             case 'b':
  45.                 for(i=0;i<s.size()-1;i++)
  46.                     cout<<s[i];
  47.                 cout<<'d'<<endl;
  48.                 break;
  49.             case 'd':
  50.                 for(i=0;i<s.size()-1;i++)
  51.                     cout<<s[i];
  52.                 cout<<'e'<<endl;
  53.                 break;
  54.             case 'e':
  55.                 for(i=0;i<s.size()-1;i++)
  56.                     cout<<s[i];
  57.                 cout<<'o'<<endl;
  58.                 break;
  59.             case 'o':
  60.                 for(i=0;i<s.size()-1;i++)
  61.                     cout<<s[i];
  62.                 cout<<'p'<<endl;
  63.                 break;
  64.             case 'p':
  65.                 for(i=0;i<s.size()-1;i++)
  66.                     cout<<s[i];
  67.                 cout<<'q'<<endl;
  68.                 break;
  69.             case 'q':
  70.                 i=s.size()-1;
  71.                 while(i>=0&&s[i]=='q')
  72.                     i--;
  73.                 j=i;
  74.                 while(j>=0&&s[j]=='z')
  75.                     j--;
  76.                 if(j==-1)
  77.                     cout<<j<<endl;
  78.                 else{
  79.                     for(int k=0;k<j;k++)
  80.                         cout<<s[k];
  81.                     if(i-j>=1||se.count(s[j]+1)||!se.count(s[j])){
  82.                         if(s[j]+1!='g')
  83.                             cout<<char(s[j]+1);
  84.                         else
  85.                             cout<<'h';
  86.                         if(se.count(s[j]+1)&&!se.count(s[j]))
  87.                             i++;
  88.                         if(!se.count(s[j]+1)&&se.count(s[j]))
  89.                             i--;
  90.                         for(j++,i++;i<s.size();j++,i++)
  91.                             cout<<'a';
  92.                         for(j=j;j<s.size();j++)
  93.                             cout<<'c';
  94.                         cout<<endl;
  95.                     }else{
  96.                         s[j]++;
  97.                         while(!se.count(s[j]))
  98.                             s[j]++;
  99.                         if(s[j]=='g') s[j]++;
  100.                         cout<<s[j];
  101.                         for(j++;j<s.size();j++)
  102.                             cout<<'a';
  103.                         cout<<endl;
  104.                     }
  105.                 }
  106.                 break;
  107.             }
  108.         }else{
  109.             i=s.size()-1;
  110.             while(s[i]=='z')
  111.                 i--;
  112.             for(j=0;j<i;j++)
  113.                 cout<<s[j];
  114.             if(se.count(s[i])){
  115.                 if(s[i]+1!='g')
  116.                     cout<<char(s[i]+1);
  117.                 else
  118.                     cout<<'h';
  119.                 if(se.count(s[i]+1)){
  120.                     for(i++;i<s.size();i++)
  121.                         cout<<'c';
  122.                     cout<<endl;
  123.                 }else{
  124.                     cout<<'a';
  125.                     for(i+=2;i<s.size();i++)
  126.                         cout<<'c';
  127.                     cout<<endl;
  128.                 }
  129.             }else{
  130.                 s[i]++;
  131.                 while(se.count(s[i]))
  132.                     s[i]++;
  133.                 if(s[i]=='g') s[i]++;
  134.                 cout<<s[i];
  135.                 for(i++;i<s.size();i++)
  136.                     cout<<'c';
  137.                 cout<<endl;
  138.             }
  139.         }
  140.     }
  141.     return 0;
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement