上海计算机学会2024年11月月赛C++丙组T2大胃王
大胃王
内存限制: 512 Mb时间限制: 1000 ms
题目描述
Bob 的同事向他发起"大胃王"挑战:"如果你们两人吃下了超过 x 个包子,则每人再多吃一个时我会奖给你们每人5元。"
例如,如果 x=5 且 Bob 吃了 8 个包子,那么他会收到 15 元,因为他吃了 3 个额外的包子。
你知道在包子店里每个笼子里包含 y 个包子吗?同时也明白鲍勃最终从同事那里领到了 r 元,请问他最多可以购买多少笼包子?
Bob 不会因为吃掉了整批包子而不去点下一笼;也许他会因为吃了整批而选择不再点了。
输入格式
第一行一个整数 T 表示数据组数。
接下来 T 行,每行三个整数 x,y,r,含义如题。
输出格式
共 TT 行,每行一个整数表示答案。
数据范围
对于 30% 的数据,T=1,x≤10,y=1。
对于 60% 的数据,T=1,x≤10。
对于 100% 的数据,1≤T≤10^4,1≤x≤100,1≤y≤10,0≤r≤5000 且保证 r 是 5 的倍数。
样例数据
对于第一组测试用例而言:
鲍勃获得了五元人民币。
这表明他多吃了十个包子,
总数达到了十一个包子,
每个笼子里只包含一个包子,
因此鲍勃最多选择了十一笼包子。
对于第二组测试用例而言:
收到十元钱后,
鲍勃选择了十个一元面值的钞票,
最终获得了五个一元面值的钞票,
这表示他多获得了一个面额较小的钞票。
对于第三组测试用例而言:
收到十元整存入后,
鲍勃选择了两个五千元面值的存单,
最终获得了五千三百元整存入账户中。
对于第四组测试用例而言:
收到一百元整存入后,
鲍勃选择了两个五千元面值的存单,
最终获得了五千四百元整存入账户中。
对于第五组测试用例而言:
收到一百元整存入后,
鲍勃选择了两个五千元面值的存单,
最终获得了五千四百元整存入账户中。
对于第六组测试用例而言:
收到一百元整存入后,
鲍勃选择了两个五千元面值的存单,
最终获得了五千四百元整存入账户中。
解析:先计算吃的包子数量 r/5+x,然后计算笼数,注意要向上取整,详见代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
int t, x, y, r;
cin >> t;
while (t--) {
cin >> x >> y >> r;
cout << ceil(double(x + r / 5) / y) << "\n";
}
return 0;
}
