| ||||||||||
| 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