Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: Chawin
Problemset: Dvaravati-LCS
Language: cpp
Time: 0.003 second
Submitted On: 2026-03-15 22:28:13
#include<bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(0), cin.tie(0);
string s1, s2;
cin >> s1;
cin >> s2;
int n = s1.size();
int m = s2.size();
vector<vector<int>> dp(n+1, vector<int> (m+1, 0));
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++){
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 x = n, y = m;
string a = "";
while(x != 0 && y != 0){
if(s1[x-1] == s2[y-1]){
a += s1[x-1];
x--;
y--;
}
else if(dp[x-1][y] > dp[x][y-1]){
x--;
}
else{
y--;
}
}
for(int i = a.size()-1; i >= 0; i--){
cout << a[i];
}
cout << "\n";
cout << dp[n][m] << "\n";
if(dp[n][m] >= n/2) cout << "y";
else cout << "n";
return 0;
}