当前位置:首页 > 复赛 > 正文内容

CSP-J2021年普及组复赛T1——分糖果

亿万年的星光4年前 (2021-11-06)复赛2404

【题目背景】

红太阳幼儿园的小朋友们开始分糖果啦!

【题目描述】

红太阳幼儿园有 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输入】

7 16 23

【样例1输出】

6

【样例1解释】

拿 k = 20 块糖放入篮子里。 

篮子里现在糖果数 20 ≥ n = 7,因此所有小朋友获得一块糖;

篮子里现在糖果数变成 13 ≥ n = 7,因此所有小朋友获得一块糖; 

篮子里现在糖果数变成 6 < n = 7,因此这 6 块糖是作. 为. 你. 搬. 糖. 果. 的. 奖. 励. 。 

容易发现,你获得的作. 为. 你. 搬. 糖. 果. 的. 奖. 励. 的糖果数量不可能超过 6 块(不然,篮子 里的糖果数量最后仍然不少于 n,需要继续每个小朋友拿一块),因此答案是 6。

【样例2输入】

10 14 18

【样例2输出】

8

【样例2解释】

容易发现,当你拿的糖数量 k 满足 14 = L ≤ k ≤ R = 18 时,所有小朋友获得一块 糖后,剩下的 k − 10 块糖总是作. 为. 你. 搬. 糖. 果. 的. 奖. 励. 的糖果数量,因此拿 k = 18 块是最 优解,答案是 8。

【数据范围】

测试点n<=R<=R-L<=
1255
251010
3103103103
4105105105
51031090
6103109103
7105109105
8109109109
9
109109109
10109109109

对于所有数据,保证 2 ≤ n ≤ L ≤ R ≤ 109。

【参考答案】

#include<iostream>
#include<cstdio>
using namespace std;
int main() {
	//freopen("candy.in","r",stdin);
	//freopen("candy.out","w",stdout);
	int n,l,r,ans=0;
	cin>>n>>l>>r;//人数,下限,上限 (10^9)
	if(r-l<n) {
		for(int i=r; i>=l; i--) {
			int tmp=i%n;
			if(tmp>ans)
				ans=tmp;
		}
	} else {
		ans=n-1;
	}
	cout<<ans;
	//fclose(stdin);
	//fclose(stdout);
	return 0;
}


    扫描二维码推送至手机访问。

    版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

    分享给朋友:

    相关文章

    NOIP2008年普及组 T2 排座椅

    NOIP2008年普及组 T2 排座椅

    【问题描述】上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳。同学...

    CSPJ2019普及组T1 数字游戏

    【题目描述】小 K 同学向小 P 同学发送了一个长度为 8 的 01 字符串来玩数字游戏,小 P 同学想要知道字符串中究竟有多少个 1。注意:01 字符串为每一个字符是 0 或者 1 的字符串,如“1...

    NOIP2017普及组 T2图书管理员

    【题目描述】图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个 正整数。 每位借书的读者手中有一个需求码,这个需求码也是一个正整数。如果一本书的图 书编码恰好以读者的需求码结尾,...

    NOIP2014年普及组T1 珠心算测验

    【题目描述】珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。某学校的珠心算老师采用一种快速考察珠心算加...

    NOIP/CSP考试中需要注意的一些问题(持续更新)

    1.gets问题考试中请不要使用gets函数读取字符数组。可以用cin的方式读取。如果是字符串,请直接使用string及getline的方式读取。2.strlen问题在考试中,如果使用strlen函数...

    NOIP2011年普及组T2 统计单词数

    【题目描述】一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给...