(未AC)7-10 冰壶比赛 (30分)

北战南征 提交于 2020-01-19 23:41:25

在3月29日举行的女子冰壶世锦赛决赛中,;钟志颖、陈佳衡、叶翰熙和傅琰组成的中国女子冰壶队以8比6击败了冬奥会和世锦赛双冠王瑞典队,夺得了中国冰壶历史上第一枚世锦赛金牌,创造了历史。美丽、实力兼具的中国冰壶姑娘们也赢得了超高的赞誉。 在冰壶比赛中,给出一个目标点P,以及一个规定的正整数r。每一局由甲乙两队轮流投冰壶各8次后,该局比赛结束。此时,哪一方的冰壶最终离目标点P更近,该方得分,另一方不得分。得分方每颗离目标点P距离小于或等于r、位置较另一队所有冰壶都更接近目标点P的冰壶都可以得1分。 比赛最多进行10局。双方之间的某局比赛结束后,落后一方可以弃权。此时,比赛不再进行下去。 已知每一局结束时,双方的每个冰壶离目标点P的距离,以及正整数r,请你写一个程序判断两队之间每一局比赛的得分,以及总得分。

输入格式:

第一行只有一个正整数r。 以下有若干行(不超过20行),除了最后一行外,每一行有8个正整数(互相之间以一个空格分隔)。 第2行的第j个数表示第1局比赛结束时,甲方的第j个冰壶距离目标点P的距离; 第3行的第j个数表示第1局比赛结束时,乙方的第j个冰壶距离目标点P的距离; 第4行的第j个数表示第2局比赛结束时,甲方的第j个冰壶距离目标点P的距离; 第5行的第j个数表示第2局比赛结束时,乙方的第j个冰壶距离目标点P的距离; … … 第2k行的第j个数表示第k局比赛结束时,甲方的第j个冰壶距离目标点P的距离; 第2k+1行的第j个数表示第k局比赛结束时,乙方的第j个冰壶距离目标点P的距离; 如果有一方中途弃权,则最后一行(偶数行)只有一个整数-1,表示此时发生弃权情况。

输出格式:

有若干行,每行有二个整数,中间以一个冒号分隔,表示每一局比赛甲乙双方的比分(甲得分在前)。 最后一行有二个整数,中间以一个冒号分隔,表示甲乙双方比赛的最终得分(甲得分在前)。

输入样例1:

8
5  20  18  19  3  15  13  3
20  2  17  12  5  18  10  11
20  3  4  1  2  11  9  2
1  15  19  9  8  14  11  10
15  2  10  1  19  14  3  18
15  17  21  19  24  32  19  26
-1

输出样例1:

0:1
0:0
3:0
3:1

输入样例2:

8
5  20  18  19  3  15  13  3
20  2  17  12  5  18  10  11
20  3  4  1  2  11  9  2
1  15  19  9  8  14  11  10
15  2  10  1  19  14  3  18
15  17  21  19  24  32  19  26
5  1  14  13  15  2  3  11
14  7  5  19  10  12  6  9
3  14  9  8  4  8  3  10
14  6  9  4  8  2  1  5
9  8  1  2  8  8  7  18
16  8  20  19  3  1  10  5
2  13  19  2  18  9  18  3
6  5  5  20  6  17  2  18
17  3  20  6  9  3  17  17
20  10  8  12  19  19  18  20
15  18  4  18  17  14  5  16
6  14  8  14  19  7  13  7
15  9  2  8  20  3  10  14
8  6  3  2  4  11  4  10

输出样例2:

0:1
0:0
3:0
3:0
0:2
0:0
0:0
3:0
2:0
0:0
11:3

【样例说明】 在样例1和样例2中: 第1局比赛时,甲方离目标点P的最近距离为3,乙方离目标点P的最近距离为2,乙方得分。乙比甲方的3更小的值只有1个(值为2壶),因此乙方得1分。 第2局比赛时,甲方离目标点P的最近距离为1,乙方离目标点P的最近距离为1,双方均不得分。 第3局比赛时,甲方离目标点P的最近距离为1,乙方离目标点P的最近距离为15,甲方得分。甲比乙方的15小的值有5个(2、10、1、14、3),但小于等于r=8的值只有3个(2、1、3),因此甲得3分。 样例1只进行了3局,总得分为3:1,样例2所有10局比赛进行完,总得分为11:3。

【数据限制】70%的数据,双方均不弃权,比赛进行10局。 100%的数据,每只冰壶距离目标点P的距离不超过100。

 1 #include<iostream>
 2 #include<string>
 3 #include<algorithm>
 4 using namespace std;
 5 int main()
 6 {
 7     int r;
 8     int jia[8], yi[8], min_jia = 999, min_yi = 999, sum = 0, sum_jia = 0, sum_yi = 0, flag = 1, flag1 = 1;
 9     cin >> r;
10     for (int i = 2; i <= 21; i++)
11     {
12         int tmp;
13         for (int j = 0; j < 8; j++)
14         {
15             cin >> tmp;
16             if (tmp == -1)
17             {
18                 flag = 0;
19                 break;
20             }
21             if (i % 2 == 0)
22             {
23                 if (min_jia > tmp)
24                     min_jia = tmp;
25                 jia[j] = tmp;
26             }
27             else
28             {
29                 if (min_yi > tmp)
30                     min_yi = tmp;
31                 yi[j] = tmp;
32             }
33         }
34         if (flag == 0)
35             break;
36         if (flag1 == 1)
37         {
38             flag1 = 2;
39             continue;
40         }
41         if (flag1 == 2)
42         {
43             flag1 = 1;
44         }
45         if (min_yi < min_jia)
46         {
47             for (int k = 0; k < 8; k++)
48             {
49                 if (yi[k] < min_jia&&yi[k] <= r)
50                 {
51                     sum++;
52                 }
53             }
54             sum_yi += sum;
55             min_yi = 999;
56             printf("0:%d\n", sum);
57             sum = 0;
58         }
59         else if (min_yi > min_jia)
60         {
61             for (int k = 0; k < 8; k++)
62             {
63                 if (jia[k] < min_yi&&jia[k] <= r)
64                 {
65                     sum++;
66                 }
67             }
68             sum_jia += sum;
69             min_jia = 999;
70             printf("%d:0\n", sum);
71             sum = 0;
72         }
73         else if (min_yi = min_jia)
74         {
75             printf("0:0\n");
76             min_jia = min_yi = 999;
77         }
78 
79     }
80     printf("%d:%d", sum_jia, sum_yi);
81 }
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!