Advertisement
a53

CountPal

a53
Dec 22nd, 2019
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.63 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define MOD 777013
  3. using namespace std;
  4.  
  5. char s[5005];
  6. int dp[5005], n;
  7.  
  8. int main()
  9. {
  10. int i, st, dr;
  11. cin >> (s + 1);
  12. n = strlen(s + 1);
  13. s[0] = '+';
  14. s[n + 1] = '-';
  15. dp[0] = 1;
  16. for (i = 1; i <= n; i++)
  17. {
  18. st = dr = i;
  19. while (s[st] == s[dr])
  20. {
  21. dp[dr] = (dp[dr] + dp[st - 1]) % MOD;
  22. st--; dr++;
  23. }
  24. st = i;
  25. dr = i + 1;
  26. while (s[st] == s[dr])
  27. {
  28. dp[dr] = (dp[dr] + dp[st - 1]) % MOD;
  29. st--; dr++;
  30. }
  31. }
  32. cout << dp[n] << "\n";
  33. return 0;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement