Submission

Status:
PPPPPPPPPP

Score: 100

User: YoruoniVamp

Problemset: Dvaravati-LCS

Language: cpp

Time: 0.072 second

Submitted On: 2025-03-13 12:31:39

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define ll long long
#define ld long double
#define ull unsigned ll
#define cint const int
#define cf const float

cint mxA = 1e6+5, MOD = 1e9+7, INF = 0x3f3f3f3f;
cint d4x[4] = {0, 1, 0, -1}, d4y[4] = {1, 0, -1, 0};
cint d8x[8] = {0, 1, 1, 1, 0, -1, -1, -1}, d8y[8] = {1, 1, 0, -1, -1, -1, 0, 1};

int dp[605][605];
string dps[605][605], s1, s2;

void solve(){
    for(int i = 0; i < 605; i++) for(int j = 0; j < 605; j++) dps[i][j] = "";
    cin >> s1 >> s2;
    for(int i = 1; i <= s1.length(); i++){
        for(int j = 1; j <= s2.length(); j++){
            if(s1[i-1]==s2[j-1]){
                dp[i][j] = dp[i-1][j-1] + 1;
                dps[i][j] = dps[i-1][j-1] + s1[i-1];
            }else{
                if(dp[i][j-1]>dp[i][j]){
                    dp[i][j] = dp[i][j-1];
                    dps[i][j] = dps[i][j-1];
                }if(dp[i-1][j]>dp[i][j]){
                    dp[i][j] = dp[i-1][j];
                    dps[i][j] = dps[i-1][j];
                }
            }
        }
    }
    // cout << "DPED" << endl;
    // for(int i = 1; i <= s1.length(); i++){
    //     for(int j = 1; j <= s2.length(); j++) cout << dps[i][j] << ' ';
    //     cout << endl;
    // }
    cout << dps[s1.length()][s2.length()] << endl;
    cout << dps[s1.length()][s2.length()].length() << endl;
    if(dps[s1.length()][s2.length()].length()>=(s1.length()+1)/2) cout << 'y';
    else cout << 'n';
    return;
}

int main(){
    // cin.tie(nullptr)->sync_with_stdio(0);cout.tie(0);
    // freopen("", "r", stdin);
    // freopen("", "w", stdout);
    int t = 1;
    // cin >> t;
    while(t--) solve();
    return 0;
}