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

打错

Posted by pq at 2006-03-20 16:45:30 on Problem 1002
In Reply To:为什么总是超时的呢? Posted by:pq at 2006-03-20 16:39:33
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define maxn 100002

int map[] = {2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,0,7,7,8,8,8,9,9,9,0};

int cp(const void *a,const void *b)
{
 return(*(long*)a>*(long*)b?1:-1);
}

void main()
{char b[100];
long a[maxn],i,j,l,num,ok=0,n=-1,c;
scanf("%ld",&num);
  for (n=0;n<num;n++)
  {
   scanf("%s",b);
      l=strlen(b); j=-1;
	  for (i=0; i<l;i++)
		  if ((b[i]>='0')&&(b[i]<='9')) {j++; b[j]=b[i];}
		  else if ((b[i]>='A')&&(b[i]<='Z')) {j++; b[j]='0'+map[b[i]-'A'];}
	  b[7]='\0';
   a[n]=atol(b);
  }
  a[num]=10000000;
  qsort(a,num,sizeof(a[0]),cp);
  j=0;
  ok=0;
  for (i=0; i<num;)
  {c=1;
   for (j=i+1; a[i]==a[j]&&j<num;j++) c++;
   if (c>1) {printf("%.3ld-%.4ld %ld\n",a[i]/10000,a[i]%10000,j-i); ok=1;}
   i=j;
  }
  if (!ok) printf("No duplicates.\n");
}

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