Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: SparkPun
Problemset: Dvaravati-LCS
Language: cpp
Time: 0.004 second
Submitted On: 2025-11-04 20:12:14
#include <bits/stdc++.h>
using namespace std;
int main(){
string s1,s2;
cin >> s1;
cin >> s2;
int dp[s1.size()+1][s2.size()+1];
for(int i=0;i<=s1.size();i++){
for(int j=0;j<=s2.size();j++){
if(i==0 || j==0){
dp[i][j]=0;
}
else if(s1[i-1]==s2[j-1]){
dp[i][j]=dp[i-1][j-1]+1;
}
else{
dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
}
}
}
int idx=dp[s1.size()][s2.size()];
string lcs(idx,' ');
int i=s1.size(),j=s2.size();
while(i>0 && j>0){
if(s1[i-1]==s2[j-1]){
lcs[idx-1]=s1[i-1];
i--;
j--;
idx--;
}
else if(dp[i-1][j] > dp[i][j-1])
i--;
else
j--;
}
cout << lcs << endl;
cout << lcs.size() << endl;
if(lcs.length()>min(s1.size(),s2.size())/2){
cout << "y";
}
else{
cout << "n";
}
}