Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- int nv;
- int va[1010];
- int vb[1010];
- int main(){
- scanf("%d", &nv);
- for(int i = 1; i <= nv; ++i){
- scanf("%d", &va[i]);
- }
- for(int i = 1; i <= nv; ++i){
- scanf("%d", &vb[i]);
- }
- vector<vector<int>> lcs(nv + 1, vector<int>(nv + 1, 0));
- for(int ia = 1; ia <= nv; ++ia){
- for(int ib = 1; ib <= nv; ++ib){
- if(va[ia] == vb[ib]){
- lcs[ia][ib] = 1 + lcs[ia - 1][ib - 1];
- } else {
- lcs[ia][ib] = max(lcs[ia - 1][ib], lcs[ia][ib - 1]);
- }
- }
- }
- cout << lcs[nv][nv];
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement