fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define int long long
  4. #define dd double
  5. #define ld long double
  6. #define ull unsigned long long
  7. #define yes cout << "YES\n"
  8. #define no cout << "NO\n"
  9. #define el "\n"
  10. #define Arwa ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  11. #define fix(x) cout << fixed << setprecision(x)
  12. #define all(v) v.begin(),v.end()
  13. #define dpp(v,val) memset(v,val,sizeof(v))
  14. #define mod 1e9+7
  15. #define oo 1e9
  16. const int N = 1e5 + 5;
  17. int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); } // log(n) __gcd(a,b)
  18. //todo اى ويل بريبير ماى بيبرز تو بى ذا بيست ان زيس وورلد
  19. string s;
  20. int cnt=0;
  21. map<pair<int,string>,int>dp;
  22. int solve(int i,string x)
  23. {
  24. if(i==s.length())
  25. {
  26. string y=x; reverse(all(y));
  27. if(x==y) return 1;
  28. return 0;
  29. }
  30. if(dp.count({i,x})) return dp[{i,x}];
  31. return dp[{i,x}] =solve(i+1,x)+solve(i+1,x+s[i]);
  32. }
  33. void HereWeGoAgain()
  34. {
  35. dp.clear();
  36. cin>>s;
  37. cnt=0;
  38. cout<<solve(0,"")-1<<el;
  39. }
  40. int32_t main()
  41. {
  42. Arwa
  43. int t=1;
  44. cin>>t;
  45. for(int i=1;i<=t;i++)
  46. {
  47. HereWeGoAgain();
  48. }
  49. return 0;
  50. }
Success #stdin #stdout 0.01s 5316KB
stdin
Standard input is empty
stdout
0