func_code_string: #include <bits/stdc++.h>   #pragma GCC optimize( Ofast )   #pragma GCC target( sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native )   #pragma GCC optimize( -ffloat-store )   using namespace std;   clock_t time_p = clock();   void aryanc403() {}   const long long int INF = 0xFFFFFFFFFFFFFFFL;   long long int seed;   mt19937 rng(seed = chrono::steady_clock::now().time_since_epoch().count());   inline long long int rnd(long long int l = 0, long long int r = INF) {     return uniform_int_distribution<long long int>(l, r)(rng);   }   class CMP {    public:     bool operator()(pair<long long int, long long int> a,                     pair<long long int, long long int> b) {       return !(a.first < b.first || (a.first == b.first && a.second <= b.second));     }   };   void add(map<long long int, long long int> &m, long long int x,            long long int cnt = 1) {     auto jt = m.find(x);     if (jt == m.end())       m.insert({x, cnt});     else       jt->second += cnt;   }   void del(map<long long int, long long int> &m, long long int x,            long long int cnt = 1) {     auto jt = m.find(x);     if (jt->second <= cnt)       m.erase(jt);     else       jt->second -= cnt;   }   bool cmp(const pair<long long int, long long int> &a,            const pair<long long int, long long int> &b) {     return a.first < b.first || (a.first == b.first && a.second < b.second);   }   const long long int mod = 1000000007L;   long long int T, n, i, j, k, in, cnt, l, r, u, v, x, y;   long long int m;   string s, t, a, b;   bool fl;   vector<vector<long long int> > dp, bb;   long long int solve(long long int n, long long int m) {     long long int &ans = dp[n + 1][m + 1];     if (ans != -1) return ans;     ans = INF;     if (n != -1) {       long long int cur = solve(n - 1, m) + 1;       if (cur < INF) ans = min(ans, bb[cur][a[n] -  a ]);     }     if (m != -1) {       long long int cur = solve(n, m - 1) + 1;       if (cur < INF) ans = min(ans, bb[cur][b[m] -  a ]);     }     return ans;   }   int main(void) {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     cin >> T;     while (T--) {       cin >> s >> t;       s =  #  + s;       fl = false;       bb.clear();       bb.resize((int)(s).size() + 5, vector<long long int>(26, INF));       for (i = ((int)(s).size() - 1); i >= (1); --i) {         assert(i + 1 < (int)(bb).size());         bb[i] = bb[i + 1];         bb[i][s[i] -  a ] = i;       }       for (long long int l = 1; l <= (int)(t).size(); ++l) {         a = t.substr(0, l);         b = t.substr(l);         n = (int)(a).size();         m = (int)(b).size();         dp.clear();         dp.resize(n + 2, vector<long long int>(m + 2, -1));         dp[0][0] = 0;         if (solve(n - 1, m - 1) < (int)(s).size()) {           fl = true;           break;         }       }       cout << (fl ?  YES  :  NO ) <<   n ;     }     aryanc403();     return 0;   }   