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

1002 Wrong Answer 大侠帮忙看看,示例输入可以得到正确答案

Posted by lijiecsu at 2012-03-21 16:12:23
代码:

#include<stdio.h>

char getDigit(char ch)
{
  if(ch<='9' && ch>='0') return ch-'0';	
  char num = ch-'A';
  if(num > 15) num--;
  return num/3 + 2;
}

void transform(char s[], int p[])
{
	int i,j;
	for(i=0,j=0; i<15; i++)
	{
		if(j==7 || s[i]=='\0') break;
		if(s[i] != '-') p[j++]=getDigit(s[i]);
	}
}

int compare(int a[], int b[])
{
	int i;
	for(i=0; i<7; i++)
	{
		if(a[i]<b[i]) return -1;
		else if(a[i]>b[i]) return 1;
	}
	return 0;
}

int partition(int *list[], int start, int end)
{
  int i=start,j=start+1;
  int *pivot=list[start], *temp;
  for(;j<=end;j++)
  {
    if(compare(list[j],pivot)<=0) //小于枢纽 
    {
		temp = list[++i];
		list[i]=list[j];
		list[j]=temp;
	}
  }
  temp = list[start];
  list[start] = list[i];
  list[i] = temp;
  return i;
}

void quiksort(int *list[], int start, int end)
{
	if(start>=end) return;
	int index = partition(list,start,end);
	quiksort(list,start,index-1);
	quiksort(list,index+1,end);
}

void print(int a[], int count)
{
	int i=0;
	for(;i<7;i++)
	{
	  printf("%d",a[i]);
	  if(i==2) printf("-");
    }
    printf(" %d\n",count);
}


int main()
{
	int n,i,j,count,rcount=0;
	char s[15];
	scanf("%d", &n);
	int list[n][7];
	int *p[n];
	for(i=0; i<n; i++)
	{
	   scanf("%s", s);
	   transform(s,list[i]);
	   p[i]=list[i];
	}
	quiksort(p,0,n-1);
	
	for(i=0; i<n; i++)
	{
		count=1;
		j=i+1;
		while(j<n && compare(p[i],p[j])==0)
		{
			count++;
			j++;
		}
		if(count>1) 
		{ 
	     print(p[i],count);
	     rcount++;
	     i=j-1;
	    }
	}
	if(rcount==0) 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