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";
}