fork download
  1. #include<bits/stdc++.h>
  2. #define S string
  3. #define ll long long
  4. #define nl "\n"
  5. #define speed ios_base::sync_with_stdio(false) , cin.tie(NULL) , cout.tie(NULL);
  6. using namespace std;
  7. vector<pair<int, int> >d={
  8. {0,-1},{0,1},{1,0},{-1,0}
  9. };
  10. vector<char>dd={'L', 'R' , 'D' , 'U'};
  11. const int MOD = 1e9 + 7;
  12. const int N = 1001;
  13. int main() {
  14. speed
  15. S s;
  16. while (getline(cin , s)){
  17. if (s.size() == 0) break;
  18. int mem[N][N];
  19. function <int(int , int )> dp =[&](int i , int k)->int {
  20. if ( k <= i)return 0;
  21. int&res=mem[i][k];
  22. if (!res)return res;
  23. res = 1e9;
  24. if ( s[i] != s[k]) {
  25. char c = s[k];
  26. s.insert(s.begin() + i , c);
  27. res =min(res, dp(i + 1 , k) + 1);
  28. }
  29. else res = dp( i + 1 , k - 1);
  30. return res;
  31. };
  32.  
  33. memset(mem , -1 , sizeof(mem));
  34. cout << dp(0 , s.size()-1 ) << " ";
  35. cout<< s<<nl;}
  36. return 0;
  37. }
Success #stdin #stdout 0s 5312KB
stdin
Standard input is empty
stdout
Standard output is empty