Advertisement
Guest User

Untitled

a guest
Dec 5th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define fr first
  3. #define sc second
  4. #define pb push_back
  5. #define pf push_front
  6. #define ll long long
  7. using namespace std;
  8. void TxtRead(){
  9.     freopen("input.txt","r", stdin);
  10.     freopen("output.txt","w", stdout);
  11. }
  12. void TheTime(){
  13.     ios_base::sync_with_stdio(false);
  14.     cin.tie();
  15. }
  16. const int N = 1e3+5;
  17. const ll INF = 1e9+5;
  18. const ll MOD = 1e9+7;
  19. const double PI = 3.141592653589793116;
  20.  
  21. vector<int> g[205];
  22. bool used[205];
  23.  
  24. void DFS(int v)
  25. {
  26.     used[v]=true;
  27.     for(int i=0; i<g[v].size(); i++){
  28.         int to=g[v][i];
  29.         if(!used[to]){
  30.             DFS(to);
  31.         }
  32.     }
  33. }
  34.  
  35. int main()
  36. {
  37.     TxtRead();
  38.     TheTime();
  39.  
  40.     int T;
  41.     cin>>T;
  42.     for(int t=0; t<T; t++){
  43.         string s;
  44.         cin>>s;
  45.         int n=s.size();
  46.         s='a'+s;
  47.         s=s+'a';
  48.         for(int i=1; i<=n; i++){
  49.             int st=0, fn=n;
  50.             if(s[i]=='?'){
  51.                 for(int j=i; j<=n+1; j++){
  52.                     if(s[j]!='?'){
  53.                         st=i;
  54.                         fn=j;
  55.                         i=j;
  56.                         break;
  57.                     }
  58.                 }
  59.             }
  60.             if(st){
  61.                 int x=s[st-1]-'a';
  62.                 int y=s[fn]-'a';
  63.                 int z=0;
  64.                 if(x==0 && y==1) z=2;
  65.                 else if(x==0 && y==2) z=1;
  66.                 else if(x==1 && y==2) z=0;
  67.                 else if(x==y && x==2) z=1;
  68.                 else if(x==y && x==1) z=0;
  69.                 else if(x==y && x==0) z=2;
  70.  
  71.                 int cnt=0;
  72.                 int ar[] = {z, x};
  73.                 for(int j=st; j<fn; j++){
  74.                     s[j]=ar[cnt]+'a';
  75.                     cnt=(cnt+1)%2;
  76.                 }
  77.             }
  78.         }
  79.  
  80.         int flag=false;
  81.         for(int i=2; i<=n; i++){
  82.             if(s[i]==s[i-1]){
  83.                 flag=true;
  84.                 break;
  85.             }
  86.         }
  87.  
  88.         //cout<<s<<"\n";
  89.         s.pop_back();
  90.         s.erase(0, 1);
  91.         cout<<((flag) ?"-1" :s)<<"\n";
  92.     }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement