fork(1) download
  1. #include <bits/stdc++.h>
  2. #define sz(x) (int)(x).size()
  3. #define all(a) (a).begin(), (a).end()
  4. #define pb push_back
  5. #define mp make_pair
  6. #define ff first
  7. #define ss second
  8. using namespace std;
  9. typedef long long ll;
  10. typedef pair<int,int> pii;
  11. // head
  12.  
  13. int main() {
  14. ios::sync_with_stdio(0);
  15. cin.tie(0); cout.tie(0);
  16. string s; cin >> s;
  17. int n = 27;
  18. int q1, q2;
  19. for(int i = 0; i < n; i++)
  20. for(int j = i+1; j < n; j++)
  21. if(s[i] == s[j])
  22. q1 = i, q2 = j;
  23. if(abs(q1-q2) == 1)
  24. return cout<<"Impossible",0;
  25. vector<vector<char>> ans(2,vector<char>(13,'0'));
  26. int tab = (abs(q1 - q2)+1) / 2;
  27. ans[0][12-tab-1] = s[q1];
  28. for(int i = 1; i <= tab; i++)
  29. ans[0][q1+i] = s[q1 + i];
  30. for(int i = 1; q1+tab+i <= q2; i++)
  31. ans[1][12-i] = s[q1+tab+i];
  32.  
  33. for(int i = 0; i < 2; i++)
  34. for(int j = 0; j < 12; j++)
  35. if(ans[i][j] == '0' && (i ? 12-tab-1 + j +1 : 12-tab-1 -j) == q1) {
  36. if(i == 0) {
  37. for(int k = 0; ans[0][k] == '0'; k++)
  38. ans[0][k] = s[k];
  39. queue<char> q;
  40. for(int k = q2+1; k < n; k++)
  41. q.push(s[k]);
  42. for(int k = 12-1; k >= 0; k--)
  43. if(ans[0][k] == '0')
  44. ans[0][k] = q.front(), q.pop();
  45. for(int k = 0; k < 12; k++)
  46. if(ans[1][k] == '0')
  47. ans[1][k] = q.front(), q.pop();
  48. } else {
  49. queue<char> q;
  50. for(int k = n-1; k > q2; k++)
  51. q.push(s[k]);
  52. for(int k = 0; k < q1; k++)
  53. q.push(s[k]);
  54. for(int k = 12-1; k >= 0; k--)
  55. if(ans[1][k] == '0')
  56. ans[1][k] = q.front(), q.pop();
  57. for(int k = 0; k < 12; k++)
  58. if(ans[0][k] == '0')
  59. ans[0][k] = q.front(), q.pop();
  60. }
  61. for(int p = 0; p < 2; p++)
  62. for(int q = 0; q < 12; q++)
  63. cout << ans[p][q];
  64. return 0;
  65. }
  66. return cout<<"Impossible",0;
  67. }
Success #stdin #stdout 0s 3460KB
stdin
BUVTYZFQSNRIWOXXGJLKACPEMDH

ABCDEFGHIJKLMNOPQRSGTUVWXYZ
stdout
Impossible