Submission
Status:
P--P---P--
Subtask/Task Score:
30/100
Score: 30
User: august
Problemset: Dvaravati-LCS
Language: cpp
Time: 0.003 second
Submitted On: 2026-03-22 14:51:34
#include <bits/stdc++.h>
using namespace std;
int main() {
cin.tie(0)->sync_with_stdio(0);
string a, b;
cin>> a>> b;
int n=a.size();
vector<vector<int>> dp(n+1, vector<int>(n+1, 0));
for (int i=1; i<=n; i++) {
for (int j=1; j<=n; j++) {
if (a[i-1] == b[j-1]) dp[i][j] = dp[i-1][j-1]+1;
else dp[i][j] = max(dp[i-1][j], dp[i][j-1]);
}
}
vector<char> ans;
int i=n, j=n;
while (i>=1 && j>=1) {
if (a[i-1] == b[j-1]) {
ans.push_back(a[i-1]);
i--;
j--;
}
else if (dp[i][j] == dp[i-1][j]) i--;
else j--;
}
for (int i=ans.size()-1; i>=0; i--) cout<< ans[i];
cout<< '\n';
cout<< dp[n][n]<< '\n';
if (dp[n][n] * 2 > n) cout<< "y";
else cout<< 'n';
}