【POJ1581】A Contesting Decision(简单模拟)

没有什么弯路,直接模拟即可。水题。

 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdlib>
 4 #include <cstdio>
 5 #include <cmath>
 6 #include <cctype>
 7 #include <algorithm>
 8 #include <numeric>
 9 using namespace std;
10 
11 struct team {
12     string name;
13     int submit[4], time[4];
14     int ac , time_all ;
15     void setTeam (string n, int s1, int t1, int s2, int t2, int s3, int t3, int s4, int t4) {
16         name = n;
17         ac = 0; time_all = 0;
18         submit[0] = s1; time[0] = t1;
19         submit[1] = s2; time[1] = t2;
20         submit[2] = s3; time[2] = t3;
21         submit[3] = s4; time[3] = t4;
22         for (int i = 0; i < 4; ++ i) {
23             if (submit[i] > 0 && time[i] > 0) {
24                 ac ++;
25                 time_all += time[i] + 20 * (submit[i] - 1 );
26             }
27         }
28     }
29 };
30 
31 bool cmp (team a, team b) {
32     if (a.ac != b.ac) {
33         return a.ac > b.ac;
34     } else {
35         return a.time_all < b.time_all;
36     }
37 }
38 
39 int main () {
40     ios :: sync_with_stdio(false);
41     int n; team Team[100];
42     string name; int s1, s2, s3, s4, t1, t2, t3, t4;
43     while (cin >> n) {
44         for (int i = 0; i < n; ++ i) {
45             cin >> name >> s1 >> t1 >> s2 >> t2 >> s3 >> t3 >> s4 >> t4;
46             Team[i].setTeam(name, s1, t1, s2, t2, s3, t3, s4, t4);
47         }
48         sort (Team, Team + n, cmp);
49         cout << Team[0].name << " " << Team[0].ac << " " << Team[0].time_all << endl;
50     }
51     return 0;
52 }

 

posted @ 2014-09-20 09:24  Desgard_Duan  阅读(235)  评论(0编辑  收藏  举报