| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:帮忙看看: poj_1002 报 wrong answer 但是自测数据是正确的?In Reply To:帮忙看看: poj_1002 报 wrong answer 但是自测数据是正确的? Posted by:paulou at 2013-04-25 20:34:23 > /*
> * poj_1002.c
> */
> #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
>
> #define N (100000)
> #define SIZE (10000000)
> #define LEN (7)
>
> static unsigned int item[SIZE];
>
> static void poj_1002 ();
> static char * szl_itoa_c (int v, char buf[]);
> static unsigned int szl_atoui (char str[]);
>
> int main (int argc, char * argv[]){
> poj_1002 ();
> return 0;
> }
>
> static void poj_1002 (){
> int i;
> int n;
> int tag;
> unsigned int v;
> char str_temp[LEN*2+2];
> char str_out[9];
> memset (item, '\x00', SIZE);
>
> scanf ("%d", &n);
> for( i=0; i<n; i++){
> scanf ("%s", str_temp);
> v = szl_atoui (str_temp);
> item[v]++;
> }
>
> tag = 0;
> for (i=0; i<SIZE; i++){
> if(item[i]>1){
> szl_itoa_c (i, str_out);
> printf ("%s %d\n", str_out, item[i]);
> tag = 1;
> }
> }
> if (!tag){
> printf ("No duplicates.\n");
> }
> }
>
> static unsigned int szl_atoui (char str[]){
> unsigned int u_ret = 0;
> unsigned int u_t;
> char * t_ch;
> if(str){
> t_ch = str;
> while (*t_ch){
> switch (*t_ch){
> case '0': u_t = 0; u_ret = u_ret * 10 + u_t; break;
> case '1': u_t = 1; u_ret = u_ret * 10 + u_t; break;
> case '2': case 'A': case 'B': case 'C': u_t = 2; u_ret = u_ret * 10 + u_t; break;
> case '3': case 'D': case 'E': case 'F': u_t = 3; u_ret = u_ret * 10 + u_t; break;
> case '4': case 'G': case 'H': case 'I': u_t = 4; u_ret = u_ret * 10 + u_t; break;
> case '5': case 'J': case 'K': case 'L': u_t = 5; u_ret = u_ret * 10 + u_t; break;
> case '6': case 'M': case 'N': case 'O': u_t = 6; u_ret = u_ret * 10 + u_t; break;
> case '7': case 'P': case 'R': case 'S': u_t = 7; u_ret = u_ret * 10 + u_t; break;
> case '8': case 'T': case 'U': case 'V': u_t = 8; u_ret = u_ret * 10 + u_t; break;
> case '9': case 'W': case 'X': case 'Y': u_t = 9; u_ret = u_ret * 10 + u_t; break;
> default: break;
> }
> t_ch++;
> }
> }
> return u_ret;
> }
>
> static char * szl_itoa_c (int v, char buf[]){
> int i=0;
> int n=v;
> memset (buf, '0', 9);
> buf[8] = '\0';
> buf[3] = '-';
> while (n>0){
> if (4==i){
> i++;
> }
> buf[7-i] = '0' + n%10;
> i++;
> n/=10;
> }
> return buf;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator