1 #include<cstdio>
 2 #include<queue>
 3 using namespace std;
 4 
 5 struct cmp1   //小到大
 6 {
 7     bool operator () (int &a, int &b)
 8     {
 9         return a>b;
10     }
11 };
12 
13 struct cmp2   //大到小
14 {
15     bool operator () (int &a, int &b)
16     {
17         return a<b;
18     }
19 };
20 
21 struct num1
22 {
23     int x;
24     bool operator < (const num1 a) const
25     {
26         return x>a.x;
27     }
28 };
29 
30 struct num2
31 {
32     int x;
33     bool operator < (const num2 a) const
34     {
35         return x<a.x;
36     }
37 };
38 
39 int main()
40 {
41     priority_queue<int,vector<int>, cmp1> q1;
42     priority_queue<int,vector<int>, cmp2> q2;
43     priority_queue<num1> q3;
44     priority_queue<num2> q4;
45 
46     int n;
47     while(scanf("%d", &n)==1)
48     {
49         int x;
50         num1 x1;
51         num2 x2;
52         for(int i=0; i<n; i++)
53         {
54             scanf("%d", &x);
55             x1.x=x;
56             x2.x=x;
57             q1.push(x);
58             q2.push(x);
59             q3.push(x1);
60             q4.push(x2);
61         }
62 
63         while(!q1.empty())
64         {
65             printf("%d ", q1.top());
66             q1.pop();
67         }
68         puts("");
69 
70         while(!q2.empty())
71         {
72             printf("%d ", q2.top());
73             q2.pop();
74         }
75         puts("");
76 
77         while(!q3.empty())
78         {
79             printf("%d ", q3.top().x);
80             q3.pop();
81         }
82         puts("");
83 
84         while(!q4.empty())
85         {
86             printf("%d ", q4.top().x);
87             q4.pop();
88         }
89         puts("");
90     }
91     return 0;
92 }

 

posted on 2015-03-27 09:36  咋是你呀~  阅读(117)  评论(0编辑  收藏  举报