Submission
Status:
P--P---P--
Score: 30
User: FotoFatTurtle
Problemset: Dvaravati-LCS
Language: cpp
Time: 0.003 second
Submitted On: 2025-03-22 10:57:38
#include <bits/stdc++.h>
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
string s1,s2;
cin>>s1>>s2;
int n=s1.length();
int dp[n+1][n+1]={};
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(s1[i-1]==s2[j-1])
{
dp[i][j]=max(dp[i-1][j-1]+1,max(dp[i][j-1],dp[i-1][j]));
}
else
{
dp[i][j]=max(dp[i][j-1],dp[i-1][j]);
}
}
}
int i=n,j=n;
string ans={};
while(i!=0&&j!=0)
{
if(s1[i-1]==s2[j-1])
{
ans+=s1[i-1];
i--;
j--;
}
else
{
if(dp[i][j-1]>dp[i-1][j])
{
j--;
}
else
{
i--;
}
}
}
for(int i=ans.length()-1;i>=0;i--)
cout<<ans[i];
cout<<"\n"<<ans.length()<<"\n";
if(ans.length()>n/2)
{
cout<<"y";
}
else
cout<<"n";
}