| ||||||||||
Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
不是说c<=100嘛?我开始就设N=105wa,结果改成500AC...#include<stdio.h> #include<string.h> #define N 500 char s1[N],s2[N],x[2*N],z[2*N],y[2*N]; int dfs(char s1[],char s2[],int t,int s); int main() { int n; //freopen("1.txt","r",stdin); //freopen("CON","w",stdout); while (scanf("%d",&n)!=EOF) { for (int i=1;i<=n;i++) { int t,j,flag; scanf("%d",&t); getchar(); for (j=0;j<t;j++) scanf("%c",&s1[j]); s1[t]=0; getchar(); for (j=0;j<t;j++) scanf("%c",&s2[j]); s2[t]=0; getchar(); scanf("%s",y); flag=dfs(s1,s2,t,0); printf("%d %d",i,flag); printf("\n"); } } } int dfs(char s1[],char s2[],int t,int s) { int i; for (i=0;i<t;i++) x[i*2]=s2[i]; for (i=0;i<t;i++) x[i*2+1]=s1[i]; s++; x[2*t]=0; if (s==1) memcpy(z,x,2*t*sizeof(int)); if (!strcmp(x,y)) { return s; } else { if (s!=1&&!strcmp(x,z)) return -1; for (i=0;i<t;i++) s1[i]=x[i]; s1[t]=0; for (i=t;i<2*t;i++) s2[i-t]=x[i]; s2[t]=0; dfs(s1,s2,t,s); } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator