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

还是WA!!...........谁能给几组测试数据啊??

Posted by yellowflying at 2006-07-26 11:11:28 on Problem 1002
本程序边进行格式处理边进行插入排序;排序用的是一个辅助数组order[]
#include <stdio.h>
int main()
{
	int num[100000],order[100000];
	int n,i,j,k,t=0,mark,flag,l;
	char turn[26]="2223334445556667077888999";
	char str[80],ch[100000][8];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		k=0;
		mark=1;
		l=t-1;
		scanf("%s",str);
		for(j=0;str[j]!='\0';j++)
		{
			flag=0;
			if(k==3)
				ch[t][k++]='-';
			if(str[j]>='0'&&str[j]<='9')
			{
				flag=1;
				ch[t][k++]=str[j];
			}
			else if(str[j]>='A'&&str[j]<'Z')
			{
				flag=1;
				ch[t][k++]=turn[str[j]-'A'];
			}
			if(mark&&flag)//进行比较
			{
				while(l>=0&&ch[t][k-1]<ch[order[l]][k-1])
					l--;
				if(l>=0&&ch[t][k-1]>ch[order[l]][k-1])
					mark=0;
			}
		}
		if(mark==1&&l>=0)//相等时直接加1
			num[order[l]]++;
		else//否则调整order[]顺序,进行插入
		{
			for(k=t;k>l+1;k--)
				order[k]=order[k-1];
			order[l+1]=t;
			num[t]=1;
			t++;
		}
	}
	flag=1;
	for(j=0;j<t;j++)
	{
		if(num[order[j]]>1)
		{
			flag=0;
			for(i=0;i<8;i++)
				printf("%c",ch[order[j]][i]);
			printf(" %d\n",num[order[j]]);
		}
	}
	if(flag)
		printf("No duplicates.\n");
	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