Submission
Status:
P--P---P--
Subtask/Task Score:
30/100
Score: 30
User: tHeNyXs
Problemset: Dvaravati-LCS
Language: cpp
Time: 0.003 second
Submitted On: 2026-03-06 09:49:13
#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(false); cin.tie(nullptr);
string a, b;
cin >> a >> b;
int x = a.length(), y = b.length();
vector<vector<int>> dp(x+1, vector<int>(y+1, 0));
for (int i = 1; i <= x; ++i) {
for (int j = 1; j <= y; ++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]);
}
}
string ans = "";
int i, j; i = x; j = y;
while (i >= 1 && j >= 1) {
if (a[i-1] == b[j-1]) {
ans += a[i-1];
i--; j--;
}
else if (dp[i-1][j] == dp[i][j]) i--;
else j--;
// cout << i << j << '\n';
}
// for (int i = 1; i <= x; ++i) {
// for (int j = 1; j <= x; ++j) {
// cout << dp[i][j] << " ";
// }
// cout << '\n';
// }
reverse(ans.begin(), ans.end());
cout << ans << '\n';
cout << dp[x][y] << '\n';
cout << (dp[x][y] > x/2 ? "y" : "n");
return 0;
}