fork(2) download
  1.  
  2. /*
  3.   shubham_1286(shubham verma)
  4.   */
  5. #include<cmath>
  6. #include<cstdio>
  7. #include<cstdlib>
  8. #include<cstring>
  9. #include<iostream>
  10. #include<vector>
  11. #include<deque>
  12. #include<map>
  13. #include<set>
  14. #include<stack>
  15. #include<queue>
  16. #include<algorithm>
  17. #include<list>
  18. #include<deque>
  19. #include<bitset>
  20. #include<limits.h>
  21. #include<sstream>
  22. #define max(x,y) x>y?x:y
  23. #define min(x,y) x<y?x:y
  24. #define sd(a) scanf("%d",&a);
  25. #define slld(a) scanf("%lld",&a);
  26. #define sllu(a) scanf("%llu",&a);
  27. #define pd(a) printf("%d\n",a);
  28. #define plld(a) printf("%lld\n",a);
  29. #define pllu(a) printf("%llu\n",a);
  30. #define inf INT_MAX
  31. #define low INT_MIN
  32. #define mod 1000000009
  33. #define ull unsigned long long
  34. #define ll long long
  35. using namespace std;
  36. bool flag[11][11];
  37. vector<int>lec[7];
  38. char temp[100010];
  39. bool wemp;
  40.  
  41. void func(string s,int l,int val,int indx)
  42. {
  43. vector<int>::iterator rit;
  44.  
  45. // cout<<temp<<endl;
  46. if(indx==(l-1))
  47. {
  48. // temp[indx+1]='\0';
  49. for(int i=0;i<=l-1;i++)cout<<temp[i];
  50. cout<<endl;
  51. wemp=true;
  52. return ;
  53. }
  54. else
  55. {
  56.  
  57. for(rit=lec[s[indx+1]-65].begin();rit!=lec[s[indx+1]-65].end();++rit)
  58. if(flag[val][*rit])
  59. {
  60. // if(indx==0)temp[indx]=(char)((*it)+48);
  61. temp[indx+1]=(char)((*rit)+48);
  62. func(s,l,*rit,indx+1);
  63. }
  64.  
  65. }
  66.  
  67. // return ;
  68. }
  69. int main()
  70. {
  71. //freopen("c:\\users\\shubham\\desktop\\aa.txt","r",stdin);
  72. //freopen("c:\\users\\shubham\\desktop\\out.txt","w",stdout);
  73.  
  74. for(int i=0;i<=4;i++)
  75. lec[i].push_back(i),lec[i].push_back(i+5);
  76.  
  77. for(int i=0;i<=4;i++)
  78. {
  79. flag[i][(i+1)%5]=true;
  80. flag[(i+1)%5][i]=true;
  81.  
  82. flag[i][i+5]=true;
  83. flag[i+5][i]=true;
  84. }
  85.  
  86. for(int i=5;i<=9;i++)
  87. {
  88. if((i+3)<=9)
  89. {
  90. flag[i][i+3]=true;
  91. flag[i+3][i]=true;
  92. }
  93.  
  94. if((i+2)<=9)
  95. {
  96. flag[i][i+2]=true;
  97. flag[i+2][i]=true;
  98. }
  99.  
  100. }
  101.  
  102.  
  103.  
  104.  
  105.  
  106. int t;
  107. cin>>t;
  108.  
  109. while(t--)
  110. {
  111.  
  112. string s;
  113.  
  114. cin>>s;
  115. wemp=false;
  116. int l=s.length();
  117. int pp=s[0]-65;
  118. int inp[3];
  119. inp[0]=pp;inp[1]=pp+5;
  120.  
  121.  
  122.  
  123. for(int i=0;i<=1;i++)
  124. {
  125. temp[0]=(char)(inp[i]+48);
  126. if(!wemp)
  127. func(s,l,inp[i],0);
  128. // cout<<"______\n";
  129.  
  130. }
  131. if(!wemp)
  132. cout<<-1<<endl;
  133. }
  134.  
  135. }
  136.  
Success #stdin #stdout 0s 3576KB
stdin
6
CCB
CCA
DC
DB
AAB
AABE
stdout
721
275
32
86
501
-1