我希望你是我独家记忆

一段永远封存的记忆,随风而去
posts - 263, comments - 31, trackbacks - 0, articles - 3
   :: 首页 :: 新随笔 ::  :: 聚合  :: 管理

HLOJ_List the Books

Posted on 2009-03-23 19:46 Hero 阅读(103) 评论(0)  编辑 收藏 引用 所属分类: 代码如诗--ACM
 1 //H      Accepted     31    10748    1833     C++ 
 2 #include <stdio.h>
 3 #include <stdlib.h>
 4 #include <string.h>
 5 
 6 #include <iostream>
 7 using namespace std ;
 8 
 9 struct NODE
10 {
11     char name[100] ;
12     int year ;
13     int price ;
14 };
15 struct NODE book[100000] ;
16 
17 int inn ;
18 
19 int cmp1( const void *a, const void *b )
20 {
21     struct NODE *= (struct NODE *)a ;
22     struct NODE *= (struct NODE *)b ;
23 
24     if( c->year != d->year )
25         return c->year - d->year ;
26     else if( strcmp(c->name, d->name) != 0 )
27         return strcmp( c->name, d->name ) ;
28     else 
29         return c->price - d->price ;
30 }
31 
32 int cmp2( const void *a, const void *b )
33 {
34     struct NODE *= (struct NODE *)a ;
35     struct NODE *= (struct NODE *)b ;
36 
37     if( c->price != d->price )
38         return c->price - d->price ;
39     else if( strcmp(c->name, d->name) != 0 )
40         return strcmp( c->name, d->name ) ;
41     else
42         return c->year - d->year ;
43 }
44 int cmp3( const void *a, const void *b )
45 {
46     struct NODE *= (struct NODE *)a ;
47     struct NODE *= (struct NODE *)b ;
48 
49     if( strcmp(c->name, d->name) != 0 )
50         return strcmp( c->name, d->name ) ;
51     else if( c->year != d->year ) 
52         return c->year - d->year ;
53     else
54         return c->price - d->price ;
55 }
56 
57 int main()
58 {
59     int year, price ; char name[100] ;
60 
61     while( cin >> inn && inn ) 
62     {
63         forint i=1; i<=inn; i++ )
64         {
65             cin >> book[i].name ;
66             cin >> book[i].year ;
67             cin >> book[i].price ;
68         }
69 
70         char str[100] ; cin >> str ;
71         if( strcmp( str, "Year" ) == 0 )
72         {
73             qsort( book+1, inn, sizeof(book[1]), cmp1 ) ;
74         }
75         else if( strcmp( str, "Price" ) == 0 )
76         {
77             qsort( book+1, inn, sizeof(book[1]), cmp2 ) ;
78         }
79         else
80         {
81             qsort( book+1, inn, sizeof(book[1]), cmp3 ) ;
82         }
83 
84         forint i=1; i<=inn; i++ )
85         {
86             cout << book[i].name << " " ; 
87             cout << book[i].year << " " ;
88             cout << book[i].price << endl ;
89         }
90         cout << endl ;
91     }
92 
93     return 0 ;
94 }

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理