Guest User

Untitled

a guest
May 7th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. #define INF 1000000000
  4. #define MOD 1000000007
  5. #define pb push_back
  6. #define f first
  7. #define s second
  8. #define mp make_pair
  9.  
  10. using namespace std;
  11. const long long MAXN = 3 * 1e4 + 10;
  12. typedef long long ll;
  13. typedef long double ld;
  14. typedef vector <int> vi;
  15. typedef pair <int, int> pii;
  16.  
  17. void fastIO(){
  18. ios_base::sync_with_stdio(0);
  19. cin.tie(0);
  20. cout.tie(0);
  21. #ifdef LOCAL
  22. freopen("input.txt", "r", stdin);
  23. freopen("output.txt", "w", stdout);
  24. #else
  25. freopen("sufprefix.in", "r", stdin);
  26. freopen("sufprefix.out", "w", stdout);
  27. #endif
  28. }
  29.  
  30. string s, t, p;
  31. int pref[MAXN];
  32.  
  33. void pref_func(string gg){
  34. for(int i = 1; i < (int)gg.size(); i++){
  35. int j = pref[i - 1];
  36. while(j > 0 && gg[i] != gg[j])
  37. j = pref[j];
  38. if(gg[i] == gg[j])
  39. j++;
  40. pref[i] = j;
  41. }
  42. }
  43.  
  44. int main() {
  45. fastIO();
  46. cin >> s >> t;
  47. p = t + '!' + s;
  48. pref_func(p);
  49. for(int i = 0; i < pref[s.size() + t.size()]; i++)
  50. cout << t[i];
  51.  
  52. return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment