Submission

Status:

P---------

Subtask/Task Score:

10/100

Score: 10

User: Penelope

Problemset: Dvaravati-LCS

Language: cpp

Time: 0.003 second

Submitted On: 2026-03-15 22:29:52

#include<bits/stdc++.h>
using namespace std;

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    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]);
            }
        }
    }

    int i=n,j=n;
    string ans="";

    while(i>0&&j>0){
        if(a[i-1]==b[i-1]){
            ans+=a[i-1];
            i--;
            j--;

        }else if(dp[i-1][j]>dp[i][j-1]+1){
            i--;
        }else{
            j--;
        }
    }
    reverse(ans.begin(),ans.end());
    cout<<ans<<"\n";
    cout<<ans.size()<<"\n";

    if(ans.size()>n/2){
        cout<<"y"<<"\n";
    }else{
        cout<<"n";
    }

}