2024 睿扛 谁进线下了?
5834. 谁进线下了? - AcWing题库
Xepa Legends 是一个第一人称射击类大逃杀(“吃鸡”)游戏,每轮游戏共有 20 支 3 人小队参加,最后获胜的队伍被称为“捍卫者”。
最近 Xepa Legends 举行了亚太地区南赛区的线上比赛,争夺 7 个前往德国曼海姆参加线下赛的资格,国内共有 14 支队伍参与到了其中。
因为比赛十分激烈,直到最后谁进了线下仍有巨大的疑问。
小 K 喜欢的国内知名战队 DreamTear 因其队内选手杀马特表现不佳,正好卡在出线分数前后,请你赶紧帮帮小 K,计算一下最后的分数情况,看看他喜欢的战队出线了没有吧!
Xepa Legends 的比赛共进行 N 场游戏,在每场游戏中,每支队伍在游戏中会获得一个排名和一个杀敌数(击败其他队伍玩家的数量),一支队伍在一场游戏的得分为杀敌数+排名分,排名分由队伍当场的排名根据以下表格求得:
排名分数第一名12 分第二名9 分第三名7 分第四名5 分第五名4 分第六名至第七名3 分第八名至第十名2 分第十一名至第十五名1 分第十六名至第二十名0 分
例如,
DreamTear 战队在第三场比赛获得了第三名、有 6 个杀敌数,那么他们将获得 7+6=13 分;KV 战队在第二场比赛获得了第 19 名、有 1 个杀敌数,那么他们将获得 0+1=1 分;SRN 战队在第四场比赛获得了第 1 名、有 9 个杀敌数,那么他们将获得 12+9=21 分。
注:本题与实际情况无关,所有比赛规则、队伍、队员名称均为虚构。
输入格式
输入第一行是一个正整数 N,表示有 N 场比赛。
接下来有 N 部分输入,每部分是一场比赛的情况。
对每一场比赛,信息共分 20 行,第 i 行(i=1,⋯,20)给出的两个非负整数 p 和 k 表示第 i 支队伍在这场比赛里获得了第 p 名、杀敌数为 k。
数据保证所有给定的情况中,排名永远大于等于 1 且小于等于 20,杀敌数小于等于 57。
输出格式
输出 20 行,按编号从小到大依次输出队伍的编号及该队全部游戏结束时的总分。
数据范围
1≤N≤20, 1≤p≤20, 0≤k≤57
输入样例:
3
6 2
7 3
11 5
10 1
2 9
5 8
14 3
4 3
1 6
18 1
12 1
20 0
13 0
3 2
16 4
8 1
19 0
9 4
17 1
15 0
8 2
19 1
12 2
1 9
10 1
7 5
18 0
14 0
5 2
4 4
2 5
6 2
16 3
13 1
20 0
3 7
9 3
15 0
17 5
11 3
18 0
5 2
2 9
9 4
4 7
10 3
16 0
1 6
20 0
15 1
6 0
3 6
14 3
7 4
19 0
17 0
8 9
11 0
13 5
12 0
输出样例:
1 9
2 13
3 27
4 30
5 33
6 25
7 4
8 27
9 24
10 12
11 19
12 18
13 8
14 18
15 4
16 17
17 16
18 8
19 12
20 6
难度:简单时/空限制:0.4s / 64MB总通过数:513总尝试数:694来源: 2024 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(省赛)
代码:
#include
using namespace std;
int N,score[25],p[25];
int main(void)
{
p[1] = 12;
p[2] = 9;
p[3] = 7;
p[4] = 5;
p[5] = 4;
p[6] = 3,p[7] = 3;
p[8] = p[9] = p[10] = 2;
p[11] = p[12] = p[13] = p[14] = p[15] = 1;
p[16] = p[17] = p[18] = p[19] = p[20] = 0;
cin >> N;
while(N--)
{
for(int i = 1 ; i <= 20 ; i++)
{
int p1,k1;
cin >> p1 >> k1;
score[i] += p[p1] + k1;
}
}
for(int i = 1 ; i <= 20 ; i++)
{
cout << i << " " << score[i] << endl;
}
return 0;
}