2021 CCF 非专业级软件能力认证
CSP-J/S 2021 第二轮认证
入门组
时间: 2021年10月 23日 08:30 ∼12:00
题目名称 分糖果 插入排序 网络连接 小熊的果篮
题目类型 传统型 传统型 传统型 传统型
目录 candy sort network fruit
可执行文件名 candy sort network fruit
输入文件名 candy.in sort.in network.in fruit.in
输出文件名 candy.out sort.out network.out fruit.out
每个测试点时限 1.0秒
1.0秒
1.0秒
1.0秒
内存限制 512 MiB 512 MiB 512 MiB 512 MiB
子任务数目 10 25 20 10
测试点是否等分 否 是 是 是
提交源程序文件名
对于 C++ 语言
candy.cpp sort.cpp network.cpp fruit.cpp
对于 C 语言
candy.c sort.c network.c fruit.c
对于 Pascal 语言
candy.pas sort.pas network.pas fruit.pas
编译选项
对于 C++ 语言
‐O2 ‐lm
对于 C 语言
‐O2 ‐lm
对于 Pascal 语言
‐O2
.注
.意
.事
.项(
.请
.仔
.细
.阅
.读)
1. 文件名(程序名和输入输出文件名)必须使用英文小写。
2. C/C++ 中函数main()的返回值类型必须是 int,程序正常结束时的返回值必须
是 0。
3. 提交的程序代码文件的放置位置请参考各省的具体要求。
4. 因违反以上三点而出现的错误或问题,申述时一律不予受理。
5. 若无特殊说明,结果的比较方式为全文比较(过滤行末空格及文末回车)。
6. 程序可使用的栈空间内存限制与题目的内存限制一致。
7. 全国统一评测时采用的机器配置为: Inter(R) Core(TM) i7-8700K CPU @3.70GHz ,
内存 32GB 。上述时限以此配置为准。
2021 CCF
非专业级软件能力认证 CSP-J/S 2021第二轮认证
8. 只提供 Linux格式附加样例文件。
9. 评测在当前最新公布的 NOI Linux下进行,各语言的编译器版本以此为准。
第2页 共
14 页
2021 CCF
非专业级软件能力认证 CSP-J/S 2021第二轮认证
分糖果(candy)
分糖果(candy)
【题目背景】红太阳幼儿园的小朋友们开始分糖果啦!
【题目描述】红太阳幼儿园有 n个小朋友,你是其中之一。保证 n≥ 2。
有一天你在幼儿园的后花园里发现无穷多颗糖果,你打算拿一些糖果回去分给幼儿
园的小朋友们。
由于你只是个平平无奇的幼儿园小朋友,所以你的体力有限,至多只能拿 R块糖
回去。 但是拿的太少不够分的,所以你至少要拿 L块糖回去。保证 n≤ L≤ R。
也就是说,如果你拿了 k块糖,那么你需要保证 L≤ k≤ R。
如果你拿了 k块糖,你将把这 k块糖放到篮子里,并要求大家按照如下方案分糖
果:只要篮子里有
.不
.少
.于n块糖果,幼儿园的所有 n个小朋友(包括你自己)都从篮子
中拿走
.恰
.好一块糖,直到篮子里的糖数量
.少
.于n块。此时篮子里剩余的糖果均归你所有
——这些糖果是
.作
.为
.你
.搬
.糖
.果
.的
.奖
.励。
作为幼儿园高质量小朋友,你希望让
.作
.为
.你
.搬
.糖
.果
.的
.奖
.励的糖果数量(
.而
.不
.是
.你
.最
.
后
.获
.得
.的
.总
.糖
.果
.数
.量!)尽可能多;因此你需要写一个程序,依次输入 n, L, R,并输出
出你最多能获得多少
.作
.为
.你
.搬
.糖
.果
.的
.奖
.励的糖果数量。
【输入格式】从文件 candy.in 中读入数据。
输入一行,包含三个正整数 n, L, R,分别表示小朋友的个数、糖果数量的下界和上
界。
【输出格式】输出到文件 candy.out中。
输出一行一个整数,表示你最多能获得的
.作
.为
.你
.搬
.糖
.果
.的
.奖
.励的糖果数量。
【样例 1输入】
1 7 16 23
第3页 共
14 页
2021 CCF
非专业级软件能力认证 CSP-J/S 2021第二轮认证
分糖果(candy)
【样例 1输出】
1 6
【样例 1解释】
拿 k= 20 块糖放入篮子里。
篮子里现在糖果数 20≥n= 7 ,因此所有小朋友获得一块糖;
篮子里现在糖果数变成 13≥n= 7 ,因此所有小朋友获得一块糖;
篮子里现在糖果数变成 6< n = 7,因此这 6块糖是
.作
.为
.你
.搬
.糖
.果
.的
.奖
.励。
容易发现,你获得的
.作
.为
.你
.搬
.糖
.果
.的
.奖
.励的糖果数量不可能超过 6块(不然,篮子
里的糖果数量最后仍然不少于 n,需要继续每个小朋友拿一块),因此答案是 6。
【样例 2输入】
1 10 14 18
【样例 2输出】
1 8
【样例 2解释】
容易发现,当你拿的糖数量 k满足 14 =L≤ k≤ R= 18 时,所有小朋友获得一块
糖后,剩下的 k− 10 块糖总是
.作
.为
.你
.搬
.糖
.果
.的
.奖
.励的糖果数量,因此拿 k= 18 块是最
优解,答案是 8。
【样例 3】
见选手目录下的 candy/candy3.in 与candy/candy3.ans 。
第4页 共
14 页
2021 CCF
非专业级软件能力认证 CSP-J/S 2021第二轮认证
分糖果(candy)
【数据范围】
测试点 n≤
R≤
R− L≤
1 2 5 5
2 5 10 10
3 103
103
103
4 105
105
105
5
103
109
0
6 103
7 105
105
8
109
109
9
10
对于所有数据,保证 2≤ n≤ L≤ R≤ 109
。
第5页 共
14 页
2021 CCF
非专业级软件能力认证 CSP-J/S 2021第二轮认证
插入排序(sort)
插入排序(sort)
【题目描述】插入排序是一种非常常见且简单的排序算法。小 Z是一名大一的新生,今天 H老
师刚刚在上课的时候讲了插入排序算法。 假
CSP2021 J2,2021年信息学奥赛CSP-J2入门级复赛C++真题