#include<iostream>
#include <algorithm>
using namespace std;
int m[15][2], r;
void print(int cnt) {
int ans0 = 0, ans1 = 0;
for (int i = 0; i < cnt; i++) {
cout << m[i][0] << ":" << m[i][1] << endl;
ans0 += m[i][0];
ans1 += m[i][1];
}
cout << ans0 << ":" << ans1 << endl;
}
int main(){
cin >> r;
for (int i = 0; i < 10; i++) {
int num0[10], num1[10];
for (int j = 0; j < 8; j++) {
cin >> num0[j];
if (num0[j] == -1) {
print(i);
return 0;
}
}
for (int j = 0; j < 8; j++) {
cin >> num1[j];
}
sort(num0, num0 + 8);
sort(num1, num1 + 8);
if (num0[0] < num1[0]) {
for (int j = 0; j < 8 && num0[j] < num1[0] && num0[j] <= r; j++) {
m[i][0]++;
}
} else {
for (int j = 0; j < 8 && num1[j] < num0[0] && num1[j] <= r; j++) {
m[i][1]++;
}
}
}
print(10);
return 0;
}
题目描述
在冰壶比赛中,给出一个目标点P以及一个规定的正整数r。每一局由甲和乙两队轮流投冰壶各8次后,该局比赛结束。此时,哪方的冰壶最终离目标点P更近,该方得分,另一方不得分。得分方每颗离目标点P距离小于或等于r、位置较另一队所有冰壶都更接近目标点P的冰壶都可以得1分。
比赛最多进行 10局。双方之间的某局比赛结束后,落后一方可以弃权。 此时,比赛不再进行下去。
已知每一局结束时,双方的每个冰壶离目标点P的距离以及正整数r,请写一个程序判断两队之间每一局比赛的得分,以及总得分。
输入
第1行1个正整数r。
以下有若干行(不超过20行),每一行8个正整数(之间以一个空格分隔)。
第2行的第j个数表示第1局比赛结束时,甲方的第j个冰壶距离目标点P的距离;
第3行的第j个数表示第1局比赛结束时,乙方的第j个冰壶距离目标点P的距离;
……
第2k行的第j个数表示第k局比赛结束时,甲方的第j个冰壶距离目标点P的距离;
第2k+1行的第j个数表示第k局比赛结束时,乙方的第j个冰壶距离目标点P的距离;
如果有一方中途弃权,则最后一行(偶数行)只有一个整数-1,表示此时发生弃权情况。
输出
输出若干行,每行两个整数,中间以一个冒号分隔,表示每一局比赛甲乙双方的比分(甲得分在前)。最后一行有2个整数,中间以一个冒号分隔,表示甲乙双方比赛的最终得分(甲得分在前)。
样例输入
【输入样例1】
8
5 20 18 19 3 15 13 3
20 2 17 12 5 18 10 11
20 3 4 12 11 9 2 1
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
【输入样例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 12 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
样例输出
【输出样例1】
0:1
0:0
3:0
3:1
【输出样例2】
0:1
0:0
3:0
3:0
0:2
0:0
0:0
3:0
2:0
0:0
11:3
数据范围限制
对于70%的数据满足:双方均不弃权,比赛进行10局。
对于100%的数据满足:每只冰者距离目标点P的距离不超过100。
提示
[样例说明]
在样例I和样例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。