【HDOJ】1106 排序

注意数据,末尾可能没有5,开头可能出现5,中间可能连续5.

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 
 5 #define MAXNUM 1005
 6 
 7 char buf[MAXNUM];
 8 int  nums[MAXNUM];
 9 
10 int comp(const void *a, const void *b) {
11     return *(int *)a - *(int *)b;
12 }
13 
14 int main() {
15     int i, j;
16     int tmp, len, n;
17 
18     while (gets(buf) != NULL) {
19         len = strlen(buf);
20         n = tmp = j = 0;
21         while (buf[j] == '5')
22             j++;
23         for (i=j; i<len; ++i) {
24             if (buf[i]=='5') {
25                 if (buf[i-1] != '5')
26                     nums[n++] = tmp;
27                 tmp = 0;
28             } else
29                 tmp = 10*tmp+buf[i]-'0';
30         }
31         if (buf[len-1] != '5')
32             nums[n++] = tmp;
33         qsort(nums, n, sizeof(int), comp);
34         printf("%d", nums[0]);
35         for (i=1; i<n; ++i)
36             printf(" %d", nums[i]);
37         printf("\n");
38     }
39 
40     return 0;
41 }

 

posted on 2014-04-01 17:00  Bombe  阅读(117)  评论(0)    收藏  举报

导航