2013年12月17日 星期二

[LA] 3195 - Zipper


#include<stdio.h>
#include<string.h>
char a[205],b[205],s[405];
int dp[205][205];
int main(){
    int t,i,j,la,lb,c=1;
    scanf("%d",&t);
    while(t--){
        scanf("%s%s%s",a,b,s);
        memset(dp,0,sizeof(dp));
        dp[0][0]=1;
        la=strlen(a);
        lb=strlen(b);
        for(i=0;i<=la;i++){
            for(j=0;j<=lb;j++){
                if(!i && !j) continue;
                if(i-1>=0 && dp[i-1][j] && (a[i-1]==s[i+j-1]))
                    dp[i][j]=1;
                if(j-1>=0 && dp[i][j-1] && (b[j-1]==s[i+j-1]))
                    dp[i][j]=1;
            }
        }
        printf("Data set %d: ",c++);
        if(dp[la][lb]) puts("yes");
        else puts("no");
    }
}

沒有留言:

張貼留言