Advertisement
Guest User

Untitled

a guest
Aug 24th, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. const int base = 37;
  2.  
  3. ll hashString (string s){
  4. reverse(s.begin(), s.end());
  5. ll ret = 0;
  6.  
  7. lp(i, 0, s.size()-1)
  8. ret = ret*base + tolower(s[i]);
  9.  
  10. return ret;
  11. }
  12. ll hashText( int st , int end ){
  13. ll ret = 0;
  14. lp(i, st, end)
  15. ret = ret * base + tolower(text[i]);
  16. return ret;
  17. }
  18. int main(int argc, const char * argv[]) {
  19.  
  20. map <ll , string> st;
  21. cin>>n>>text>>m;
  22. vector<string> ans ;
  23. lp(i,1 , m){
  24. string temp;
  25. cin>>temp;
  26. st[hashString(temp)] = temp;
  27. }
  28. int start = 0;
  29. lp(i, 0, n-1){
  30. ll h = hashText(start, i);
  31. map<ll , string> ::iterator it = st.find(h);
  32. if( it != st.end() ){
  33. ans.pb(it->s);
  34. start = i + 1 ;
  35. }
  36. }
  37.  
  38. for(string x : ans)
  39. cout<<x<<" ";
  40. cout<<endl;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement