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

在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 }

原文地址:https://www.cnblogs.com/luoyoooo/p/12215813.html

时间: 2024-11-07 11:03:44

(未AC)7-10 冰壶比赛 (30分)的相关文章

(未AC)7-5 特殊队列 (30分)

普通的队列仅有 EnQueue 和 DeQueue 两种操作,分别表示在队尾增加元素和取出队首元素.现在给队列增加一种新的操作 DeleteMid,表示删除队列的中间元素.对于有 N 个元素的队列,若 N 为偶数,中间元素定义为从队首到队尾的第 N/2 个元素:若 N 为奇数,中间元素定义为第 (N+1)/2 个元素.现给出队列的一系列操作,输出相应结果. 输入格式: 第一行输入一个不超过 10?6?? 的正整数 M 和 N,分别表示指令条数和队列容量. 之后 M 行,每行给出一条指令,为下列3

PTA 1004 Counting Leaves (30)(30 分)(建树dfs或者bfs,未AC 段错误)

1004 Counting Leaves (30)(30 分) A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child. Input Each input file contains one test case. Each case starts with a line containing 0 < N < 10

PAT 甲级 1034 Head of a Gang (30 分)(bfs,map,强连通)

1034 Head of a Gang (30 分) One way that the police finds the head of a gang is to check people's phone calls. If there is a phone call between A and B, we say that A and B is related. The weight of a relation is defined to be the total time length of

PAT 甲级 1049 Counting Ones (30 分)(找规律,较难,想到了一点但没有深入考虑嫌麻烦)***

1049 Counting Ones (30 分) The task is simple: given any positive integer N, you are supposed to count the total number of 1's in the decimal form of the integers from 1 to N. For example, given N being 12, there are five 1's in 1, 10, 11, and 12. Inp

pta08-图7 公路村村通 (30分)

08-图7 公路村村通   (30分) 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N):随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本.为简单起见,城镇从1到N编号. 输出格式: 输出村村通需要的最低成本.如果输入数据不足以保证畅通,则输出−1,表示需要建设更多公路. 输入样例: 6

PTA 07-图5 Saving James Bond - Hard Version (30分)

07-图5 Saving James Bond - Hard Version   (30分) This time let us consider the situation in the movie "Live and Let Die" in which James Bond, the world's most famous spy, was captured by a group of drug dealers. He was sent to a small piece of lan

九度OJ 1016 火星A + B 未AC版,整型存储不下

#include <iostream> #include <string.h> #include <sstream> #include <math.h> #include <vector> #include <algorithm> using namespace std; int susuTable[28]={1}; bool isLear(int num) { if(num==2) return true; else { int i

NOIp 2014 #2 联合权值 Label:图论 !!!未AC

题目描述 无向连通图G 有n 个点,n - 1 条边.点从1 到n 依次编号,编号为 i 的点的权值为W i ,每条边的长度均为1 .图上两点( u , v ) 的距离定义为u 点到v 点的最短距离.对于图G 上的点对( u, v) ,若它们的距离为2 ,则它们之间会产生Wu ×Wv 的联合权值. 请问图G 上所有可产生联合权值的有序点对中,联合权值最大的是多少?所有联合权值之和是多少? 输入输出格式 输入格式: 输入文件名为link .in. 第一行包含1 个整数n . 接下来n - 1 行,

5-10 公路村村通 (30分)

5-10 公路村村通   (30分) 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数NN(\le 1000≤1000)和候选道路数目MM(\le 3N≤3N):随后的MM行对应MM条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本.为简单起见,城镇从1到NN编号. 输出格式: 输出村村通需要的最低成本.如果输入数据不足以保证畅通,则输出-1?1,