CCF GESP 2024年3月认证 C++ 5级

编程题
共 2 道 每题 25 分 共计 50 分
第 1 题
成绩排序
时间限制:1s 内存限制:512MB

题目描述

有 $N$ 名同学,每名同学有语文、数学、英语三科成绩,你需要按照如下规则对所有同学的成绩从高到低排序:

  1. 比较总分,高者靠前;
  2. 如果总分相同,则比较语文和数学两科的总分,高者靠前;
  3. 如果仍相同,则比较语文和数学两科的最高分,高者靠前;
  4. 如果仍相同,则二人并列。

你需要输出每位同学的排名,如遇 $x$ 人并列,则他们排名相同,并留空后面的 $x - 1$ 个名次。例如,有 $3$ 名同学并列第 $1$,则后一名同学自动成为第 $4$ 名。

输入格式

第一行一个整数 $N$,表示同学的人数。

接下来 $N$ 行,每行三个非负整数 $c_i, m_i, e_i$ 分别表示该名同学的语文、数学、英语成绩。

保证 $0 \leq c_i, m_i, e_i \leq 150$。

输出格式

输出 $N$ 行,按输入同学的顺序,输出他们的排名。

注意请不要按排名输出同学的序号,而是按同学的顺序输出他们各自的排名

特别提醒

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。

样例说明

样例 1

输入:
6
140 140 150
140 149 140
148 141 140
141 148 140
145 145 139
0 0 0
输出:
1
3
4
4
2
6

数据范围

对于 $30\%$ 的测试点, 保证 $N \leq 100$, 且所有同学的总分各不相同 。

对于所有测试点,保证 $2 \leq N \leq 10^4$。

第 2 题
B-smooth 数
时间限制:1s 内存限制:512MB

题目描述

小杨同学想寻找一种名为 $ B $-smooth 数的正整数。

如果一个正整数的最大质因子不超过 $ B $,则该正整数为 $ B $-smooth 数。

小杨同学想知道,对于给定的 $ n $ 和 $ B $,有多少个不超过 $ n $ 的 $ B $-smooth 数。

输入格式

第一行包含两个正整数 $ n $ 和 $ B $,含义如题面所示。

输出格式

输出一个非负整数,表示不超过 $ n $ 的 $ B $-smooth 数的数量。

样例说明

样例 1

输入:
10 3
输出:
7
样例解释:

在不超过 10 的正整数中,3-smooth 数有 {1,2,3,4,6,8,9},共 7 个。

数据范围

对于全部数据, 保证有 $1≤n,B≤10^6$。

编程题部分已到底了。