Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <string.h>
- using namespace std;
- int len1, len2;
- char m1[2010], m2[2010];
- int main(){
- int ans, mx;
- scanf(" %s", m1);
- len1 = strlen(m1);
- scanf(" %s", m2);
- len2 = strlen(m2);
- mx = 0;
- vector<vector<int>> memo(len1 + 1, vector<int>(len2 + 1));
- for(int ia = 0; ia < len1; ++ia){
- for(int ib = 0; ib < len2; ++ib){
- if(m1[ia] == m2[ib]){
- memo[ia + 1][ib + 1] = memo[ia][ib] + 1;
- if(memo[ia + 1][ib + 1] > mx){
- mx = memo[ia + 1][ib + 1];
- ans = ia;
- }
- } else {
- memo[ia + 1][ib + 1] = 0;
- }
- }
- }
- for(int i = ans - mx + 1; i <= ans; ++i){
- cout << m1[i];
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement