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