Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Re:Faint...怎么回事?C++ WA,G++ 0MS..不知道是不是代码哪里出问题咯?

Posted by mobin at 2009-02-02 15:31:25 on Problem 3087
In Reply To:Faint...怎么回事?C++ WA,G++ 0MS..不知道是不是代码哪里出问题咯? Posted by:luyade at 2008-07-21 14:02:09
是代码出问题了,C++要加#include<cstring>
另外这句char Finish[maxlen],s1[maxlen],s2[maxlen*2];错了,要改为
char Finish[maxlen*2],s1[maxlen],s2[maxlen];
改后的代码在C++下过了
#include <iostream>
#include<cstring>
using namespace std;
#define  maxlen 150
char Finish[maxlen*2],s1[maxlen],s2[maxlen];
int len;

void Shuffle(char *tmp,char *tmp1,char *tmp2)
{
	int i,k;
	for(k=i=0;i<len&&k<2*len;i++)
		tmp[k++]=tmp2[i],tmp[k++]=tmp1[i];
	tmp[2*len]='\0';
}
void Break(char *tmp,char *tmp1,char *tmp2)
{
	int i,k;
	for(k=0,i=len;i<2*len;k++,i++) tmp2[k]=tmp[i];
	tmp2[len]='\0';
	for(i=0;i<len;i++)tmp1[i]=tmp[i];
	tmp1[len]='\0';
}
int main()
{
	char tmp[maxlen*2],tmp1[maxlen],tmp2[maxlen];
	int n,ncase,answer; scanf("%d",&ncase);
	for(n=1;n<=ncase;n++)
	{
		scanf("%d",&len);scanf("%s%s%s",s1,s2,Finish);
		strcpy(tmp1,s1);strcpy(tmp2,s2);

		answer=0;
		while(true)
		{
			Shuffle(tmp,tmp1,tmp2);answer++;
			if(strcmp(tmp,Finish)==0)
			{
				printf("%d %d\n",n,answer);
				break;
			}
			Break(tmp,tmp1,tmp2);
			if(strcmp(tmp1,s1)==0)
			{
				printf("%d -1\n",n);
				break;
			}
		}
		
	}
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator