For this Question: Ram is a single boy in his village, everyone in his family are searching a bride for him and recommending for Ram but Ram wants to <b>Die Single</b>, so for prevention of his marriage he came up a plan. He says that he will marry that girl only <b>If recommending member's name is a subsequence of girl name or girl's name is a subsequence of recommending member. </b>Don't worry Ram has a Huge Family. Your task is to determine wether Ram will <b>Die Single</b> or will be married.The first line of the input contains an integer T denoting number of test cases.
In each test case there contains two space separated strings R and G.

<b>Constraint's</b>
1 ≤ T ≤ 100
1 ≤ |R|, |G| ≤ 25000 (|X| denotes the length of the string X).
All names consist of english lower case letter's only.For each test case print "#DieSingle" if Ram's family can't find a perfect match, else print "#SadLife". (quotes are meant for clarity, please don't print them).<b>Sample Input</b>
2
nirali nirali
salie galie

<b>Sample Output</b>
#SadLife
#DieSingle

<b>Explanation</b>
Case 1: Any string is a subsequence of it self, as it is formed after removing "0" characters. Hence the answer is "#SadLife".

Case 2: "salie" can not be attained from "galie" as removing any character from "salie" would make the string length smaller than "galie", also there is no 'g' in "salie". Similar reasoning can be applied to see why "galie" can't be attained from "salie". Hence the answer is "#DieSingle"., I have written this Solution Code: #include <bits/stdc++.h>

#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

using namespace std;
using namespace __gnu_pbds;

template <class T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

template <class key, class value, class cmp = std::less<key>>
using ordered_map = tree<key, value, cmp, rb_tree_tag, tree_order_statistics_node_update>;
// find_by_order(k)  returns iterator to kth element starting from 0;
// order_of_key(k) returns count of elements strictly smaller than k;

#ifdef LOCAL
#define debug(...) cerr << "[" << #__VA_ARGS__ << "]:", debug_out(__VA_ARGS__)
#else
#define debug(...) 2351
#endif

#define int long long

mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());

inline int64_t random_long(long long l = LLONG_MIN, long long r = LLONG_MAX) {
    uniform_int_distribution<int64_t> generator(l, r);
    return generator(rng);
}

class Solution {
   public:
    void dieSingle(string& S, string& T) {
        if (S.length() > T.length()) {
            swap(S, T);
        }
        int n = S.length();
        int m = T.length();
        int j = 0;
        for (int i = 0; i < m; i++) {
            if (T[i] == S[j]) {
                j++;
            }
        }
        if (j == n) {
            cout << "#SadLife\n";
        } else {
            cout << "#DieSingle\n";
        }
    }
};

int32_t main() {
    auto start = std::chrono::high_resolution_clock::now();
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int tt;
    cin >> tt;
    while (tt--) {
        string s, t;
        cin >> s >> t;

        if (t > s) {
            swap(t, s);
        }

        Solution sol = Solution();
        sol.dieSingle(s, t);
    }

    auto stop = std::chrono::high_resolution_clock::now();
    auto duration = std::chrono::duration_cast<std::chrono::nanoseconds>(stop - start);
    cerr << "Time taken : " << ((long double)duration.count()) / ((long double)1e9) << "s\n";
    return 0;
}, In this Programming Language: C++, Now tell me if this Code is compilable or not?