Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<vector>
- #include<algorithm>
- using namespace std;
- int main() {
- int n;
- cin >> n;
- vector<int>a(n+1);
- for (int i = 1; i <= n; i++) {
- cin >> a[i];
- }
- int m;
- cin >> m;
- vector<int>b(m + 1);
- for (int i = 1; i <= m; i++) {
- cin >> b[i];
- }
- vector<vector<int> >dp(n + 1, vector<int>(m + 1));
- for (int i = 1; i <= n; i++) {
- dp[i][0] = 0;
- }
- for (int i = 1; i <= m; i++) {
- dp[0][i] = 0;
- }
- for (int i = 1; i <= n; i++) {
- for (int j = 1; j <= m; j++) {
- if (a[i] == b[j]) dp[i][j] = dp[i - 1][j - 1] + 1;
- else dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
- }
- }
- cout << dp[n][m];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement