#include<stdio.h> #include<string.h> const int maxn = 205; char a[maxn] , b[maxn] , pat[maxn * 2]; int vis[maxn][maxn]; int n , al , bl , patl; bool dfs(int aa , int bb , int p){ //printf("aa = %d bb = %d p = %d\n" , aa , bb , p); if(p == al + bl) return true; if(vis[aa][bb] == 0){ vis[aa][bb] = 1; if(a[aa] == pat[p] && aa < al){ if(dfs(aa + 1 , bb , p + 1)) return true; } if(b[bb] == pat[p] && bb < bl){ if(dfs(aa , bb + 1 , p + 1)) return true; } } return false; } int main(){ scanf("%d" , &n); for(int cases = 1 ; cases <= n ; cases ++){ memset(vis , 0 , sizeof(vis)); scanf("%s%s%s" , a , b , pat); al = strlen(a); bl = strlen(b); patl = strlen(pat); printf("Data set %d: " , cases); if(dfs(0 , 0 , 0)) printf("yes\n"); else printf("no\n"); } return 0; }