poj2192

简单题

View Code
   
     
#include < iostream >
#include
< cstdlib >
#include
< cstring >
#include
< cstdio >
using namespace std;

#define maxn 405

char a[maxn], b[maxn], c[maxn];
bool found;

void work( int ap, int bp, int cp)
{
if (found)
return ;
if (cp == - 1 )
{
found
= true ;
return ;
}
if (ap >= 0 && c[cp] == a[ap])
work(ap
- 1 , bp, cp - 1 );
if (bp >= 0 && c[cp] == b[bp])
work(ap, bp
- 1 , cp - 1 );
}
int main()
{
// freopen("t.txt", "r", stdin);
int t;
scanf(
" %d " , & t);
for ( int i = 0 ; i < t; i ++ )
{
scanf(
" %s " , a);
scanf(
" %s " , b);
scanf(
" %s " , c);
found
= false ;
work(strlen(a)
- 1 , strlen(b) - 1 , strlen(c) - 1 );
printf(
" Data set %d: " , i + 1 );
if (found)
printf(
" yes\n " );
else
printf(
" no\n " );
}
return 0 ;
}

你可能感兴趣的:(poj)