#include<bits/stdc++.h>
using namespace std;
const int N=3015;
string s1,s2;
int n,m,dp[N][N];
void print(int i,int j){
if(i==0||j==0)return;
if(dp[i][j]==dp[i-1][j-1]+1){
print(i-1,j-1);
cout<<s1[i];
}
else if(dp[i][j]==dp[i-1][j])print(i-1,j);
else print(i,j-1);
}
int main(){
cin>>s1>>s2;
n=s1.size(),m=s2.size();
s1=' '+s1;
s2=' '+s2;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(s1[i]==s2[j])dp[i][j]=dp[i-1][j-1]+1;
else dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
}
}
print(n,m);
return 0;
}
咋错了啊啊啊