Submission
Status:
PPPPPPPPPP
Score: 100
User: hmmm
Problemset: Dvaravati-LCS
Language: cpp
Time: 0.003 second
Submitted On: 2025-03-13 14:47:29
#include<bits/stdc++.h>
using namespace std;
const int N=605;
int dp[N][N];
int main(){
ios::sync_with_stdio(0); cin.tie(0);
string s,str;
cin >> s >> str;
int n=s.size(),m=str.size();
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(s[i-1]==str[j-1]) dp[i][j]=dp[i-1][j-1]+1;
else dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
}
}
string ans;
int i=n,j=m;
while(i>0 && j>0){
if(s[i-1]==str[j-1]) ans+=s[i-1],i--,j--;
else if(dp[i-1][j]>dp[i][j-1]) i--;
else j--;
}
reverse(ans.begin(),ans.end());
cout << ans << '\n' << ans.size() << "\n";
if(ans.size()*2>n) cout << "y";
else cout << "n";
}