Hi,
I've tested my code with all possible input characteristics... and seems to be working correctly....
but when I tried to submit it, it keeps giving me WA.... can anyone find where the the bugs are...
[c]
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
long list[100005];
long cnt, n;
long numerize( char * s ){
unsigned int i, lens = strlen(s);
long result = 0;
int dig;
for ( i = 0; i < lens; i++ ){
dig = -1;
if ( s[i] == 'A' || s[i] == 'B' || s[i] == 'C' || s[i] == '2' ) dig = 2;
else if ( s[i] == 'D' || s[i] == 'E' || s[i] == 'F' || s[i] == '3' ) dig = 3;
else if ( s[i] == 'G' || s[i] == 'H' || s[i] == 'I' || s[i] == '4' ) dig = 4;
else if ( s[i] == 'J' || s[i] == 'K' || s[i] == 'L' || s[i] == '5' ) dig = 5;
else if ( s[i] == 'O' || s[i] == 'N' || s[i] == 'O' || s[i] == '6' ) dig = 6;
else if ( s[i] == 'P' || s[i] == 'R' || s[i] == 'S' || s[i] == '7' ) dig = 7;
else if ( s[i] == 'T' || s[i] == 'U' || s[i] == 'V' || s[i] == '8' ) dig = 8;
else if ( s[i] == 'W' || s[i] == 'X' || s[i] == 'Y' || s[i] == '9' ) dig = 9;
else if ( s[i] == '0' ) dig = 0;
else if ( s[i] == '1' ) dig = 1;
if ( dig >= 0 ){
result *= 10;
result += dig;
}
}
return result;
}
void printformat( int num, int dig ){
int dignum = 0, x = num, i;
while ( x > 0 ){
dignum++;
x /= 10;
}
for (i = 0; i < (dig-dignum); i++)printf("0");
if ( num > 0 ) printf("%d", num);
}
void printnumber( long num ){
printformat( (int)num/10000, 3 );
printf("-");
printformat( num%10000, 4 );
}
int bcompare (const void * a, const void * b)
{
return (*(int*)a)-(*(int*)b);
}
int main(void){
long t;
int first = 1;
for ( scanf("%ld", &t); t > 0; t-- ){
char ss[300];
int duplicate = 0, i;
scanf( "%ld", &n );
cnt = 0;
for ( ; n > 0; n-- ){
scanf("%s", ss);
list[cnt++] = numerize(ss);
}
qsort( list, cnt, sizeof(long), bcompare );
if ( first ) first = 0;
else printf("\n");
for ( i = 0; i < cnt-1; i ++ ){
if ( list[i] == list[i+1] ){
int j;
for ( j = 2; list[i+j] == list[i]; j++ );
printnumber(list[i]);
printf(" %d\n", j);
duplicate = 1;
i = i+j-1;
}
}
if ( !duplicate ) printf("No duplicates.\n");
}
return 0;
}[/c]