Advertisement
Guest User

Untitled

a guest
Jan 21st, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. typedef pair <int,int> PII;
  4. typedef long long int LL;
  5. #define REP(i,j) for(int i=0;i<j;i++)
  6. #define REPNM(i,j,k) for(int i=j;i<k;i++)
  7. #define RREP(i,j,k) for(int i=j;i>=k;i--)
  8. #define pb push_back
  9. #define mp make_pair
  10. #define A first
  11. #define B second
  12. #define MEM(i,j) memset(i,j,sizeof i)
  13. #define ALL(i) i.begin(),i.end()
  14. #define DB() if(debug)
  15. #define DBGG(i,j) DB()cout<<i<<" "<<j<<endl;
  16. #define DB4(i,j,k,l) DB() cout<<i<<" "<<j<<" "<<k<<" "<<l<<endl;
  17. #define RI(i) scanf("%d",&i)
  18. #define RII(i,j) RI(i) , RI(j)
  19. #define RIII(i,j,k) RII(i , j) , RI(k)
  20. #define RL(i) scanf("%lld",&i)
  21. #define RLL(i,j) RL(i) , RL(j)
  22. #define RLLL(i,j,k) RLL(i , j) , RL(k)
  23. ///---------------------------
  24. #define MAX 201
  25. #define INF 0x3f3f3f3f
  26. #define debug 1
  27. #define MOD 1000000007LL
  28.  
  29. string a , b;
  30.  
  31. int solve(int la , int ra , int lb , int rb){
  32. int len = ra - la + 1;
  33. int ok = 1;
  34. REP(i , len){
  35. if(a[la + i] != b[lb + i]){
  36. ok = 0; break;
  37. }
  38. }
  39. if(ok)return 1;
  40. if(len & 1) return 0;
  41. int use[30];
  42. MEM(use , 0);
  43. REP(i , len){
  44. use[ a[la + i] - 'a' ]++;
  45. use[ b[lb + i] - 'a' ]--;
  46. }
  47. REP(i , 30) if(use[i] != 0)return 0;
  48.  
  49. int ha = len / 2;
  50. int aa = la + ha - 1;
  51. int bb = lb + ha - 1;
  52.  
  53. if(solve(la , aa , lb , bb) == 1 && solve(aa + 1 , ra , bb + 1 , rb) == 1)return 1;
  54. if(solve(la , aa , bb + 1 , rb) == 1 && solve(aa + 1 , ra , lb , bb) == 1)return 1;
  55. return 0;
  56. }
  57.  
  58. int main(){
  59. cin.tie(0) , cout.sync_with_stdio(0);
  60. while(cin >> a >> b){
  61. int len = a.size();
  62. int ok = solve(0 , len - 1 , 0 , len - 1);
  63. if(ok)cout << "YES" << endl;
  64. else cout << "NO" << endl;
  65. }
  66. return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement