sacgajcvs

aca

Aug 9th, 2019
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. /*
  2. 3
  3. biteabbsirontailboltbite
  4. bite tail bolt
  5.  
  6. _____ _ _ _ _
  7. |_ _| |__ ___ / \ _ __ ___| |__ _ _| |
  8. | | | '_ \ / _ \ / _ \ | '_ \/ __| '_ \| | | | |
  9. | | | | | | __// ___ \| | | \__ \ | | | |_| | |
  10. |_| |_| |_|\___/_/ \_\_| |_|___/_| |_|\__,_|_|
  11.  
  12. */
  13. #include<bits/stdc++.h>
  14. using namespace std;
  15. #define N 100005
  16.  
  17. int dp[N];
  18. int n,m;
  19. string s;
  20. vector<string>v(N);
  21.  
  22. int fun(int i)
  23. {
  24. if(i<=-1)
  25. return 0;
  26. if(dp[i]!=-1)
  27. return dp[i];
  28. int ans=0;
  29. for(int j=0;j<m;j++)
  30. {
  31. if(i-v[j].length()+1<0)
  32. continue;
  33. if(s.substr(i-v[j].length()+1,v[j].length())==v[j])
  34. ans=max(fun(i-v[j].length())+(int)v[j].length(),ans);
  35. }
  36. dp[i]=ans;
  37. return ans;
  38. }
  39.  
  40. void solve()
  41. {
  42. cin>>m;
  43. cin>>s;
  44. n=s.length();
  45. for(int i=0;i<=n;i++)
  46. dp[i]=-1;
  47. for(int i=0;i<m;i++)
  48. cin>>v[i];
  49. cout<<n-fun(n-1);
  50. return;
  51. }
  52. int main()
  53. {
  54. int TESTS=1;
  55. // cin>>TESTS;
  56. while(TESTS--)
  57. {
  58. solve();
  59. }
  60. return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment