func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxs = 405;   const int inf = 1e9 + 7;   int dp[maxs][maxs];   string s, t, x, y;   int slen, tlen;   int nxt[maxs][26];   int g(int x) { return x + 1; }   int f(int a, int b) {     if (a == -1 && b == -1) return 0;     if (a < -1 || b < -1) return inf;     int& r = dp[g(a)][g(b)];     if (r == -1) {       r = inf;       int idx;       if (a >= 0) {         idx = f(a - 1, b);         if (idx < inf) r = min(r, nxt[idx][x[a] -  a ] + 1);       }       if (b >= 0) {         idx = f(a, b - 1);         if (idx < inf) r = min(r, nxt[idx][y[b] -  a ] + 1);       }     }     return r;   }   int main(void) {     ios_base::sync_with_stdio(0);     cin.tie(0);     int T;     cin >> T;     while (T--) {       cin >> s >> t;       int i = 0, j = 0;       slen = s.size(), tlen = t.size();       while (i < slen && j < tlen) {         if (s[i] == t[j]) ++j;         ++i;       }       if (j == tlen) {         cout <<  YES n ;         continue;       }       for (int i = 0; i <= slen; ++i)         for (int j = 0; j < 26; ++j) nxt[i][j] = inf;       for (int i = slen - 1; i >= 0; --i) {         for (int j = 0; j < 26; ++j) nxt[i][j] = nxt[i + 1][j];         nxt[i][s[i] -  a ] = i;       }       bool yes = false;       for (int i = 1; i < tlen; ++i) {         for (int j = 0; j <= tlen; ++j)           for (int k = 0; k <= tlen; ++k) dp[j][k] = -1;         x = t.substr(0, i);         y = t.substr(i, tlen - i);         if (f(i - 1, tlen - i - 1) < inf) {           yes = true;           break;         }       }       cout << (yes ?  YES n  :  NO n );     }     return 0;   }   