[蓝桥杯 2022 省 B] 刷题统计
题目描述
小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a a a 道题目,周六和周日每天做 b b b 道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n n n 题?
输入格式
输入一行包含三个整数 a , b a, b a,b 和 n n n.
输出格式
输出一个整数代表天数。
样例 #1
样例输入 #1
10 20 99
样例输出 #1
8
提示
对于 50 % 50 \% 50% 的评测用例, 1 ≤ a , b , n ≤ 1 0 6 1 \leq a, b, n \leq 10^{6} 1≤a,b,n≤106.
对于 100 % 100 \% 100% 的评测用例, 1 ≤ a , b , n ≤ 1 0 18 1 \leq a, b, n \leq 10^{18} 1≤a,b,n≤1018.
蓝桥杯 2022 省赛 B 组 C 题。
思路
由于本题数据范围为 10^18
所以不能一一枚举
s=5a+b
先确定需要几周
在进行枚举
代码
#include <iostream>
using namespace std;
typedef long long ll;
const ll N = 1e18;
ll a, b, n;
ll m,s,res;//做了的总题目数,一个星期能做多少题,做的天数
int main() {
cin >> a >> b >> n;
s=5*a+2*b;
res+=7*(n/s);//天数
m+=(n/s)*s;//题数
int i;
for(i=1;i<=7;i++)
{ if(m>=n) break;
if(i<6)
m+=a;
else
m+=b;
}
cout<<res+i-1<<endl;
return 0;
}