Submission

Status:
-PPP--P-PP

Score: 60

User: Nakornrat

Problemset: Dvaravati-LCS

Language: cpp

Time: 0.003 second

Submitted On: 2025-03-23 17:54:09

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
int dp[610][610];
int main()
{
    ios::sync_with_stdio(false);cin.tie(0);
    string a, b;cin>>a>>b;
    int len = a.length();
    for(int i=1;i<=len;i++){
        for(int j=1;j<=len;j++){
            if(a[i-1] == b[j-1]){
                dp[i][j] = 1 + dp[i-1][j-1];
            }else{
                dp[i][j] = max(dp[i-1][j], dp[i][j-1]);
            }
        }
    }
    int i=len, j=len;
    string ans = "";
    while(i>=0&&j>=0){
        if(a[i-1]==b[j-1]){
            ans+=a[i-1];
            --i;
            --j;
        }else if(dp[i-1][j]>dp[i][j-1]){
            --i;
        }else{
            --j;
        }
    }
    reverse(ans.begin(), ans.end());
    int sz = ans.size();
    cout<<ans<<endl<<dp[len][len]<<endl;
    if(sz>len/2)cout<<'y';
    else cout<<'n';
}