小明决定从下周一开始努力刷题准备蓝桥杯竞赛。
他计划周一至周五每天做 a 道题目,周六和周日每天做 b道题目。
请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n 题?
输入格式
输入一行包含三个整数 a,b和 n。
输出格式
输出一个整数代表天数。
数据范围
对于 50% 的评测用例,1≤a,b,n≤10^6,1≤a,b,n≤10^6,
对于 100% 的评测用例,1≤a,b,n≤10^18,1≤a,b,n≤10^18。
输入样例:
10 20 99
输出样例:
8
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int num=1;//测试数据规模挺大,不开long long 过不去
long long int sum=0;
long long int a,b,n;
cin>>a>>b>>n;//扫入数据
//数据预处理
num=7*(n/(5*a+2*b));
sum=n%(5*a+2*b);
//下面写的有些繁琐了
if(sum%a==0)
{
if(sum/a<=5)
{
num+=sum/a;
sum=0;
}
else
{
num+=5;
sum-=a*5;
}
}
else
{
if(sum>5*a)
{
sum-=5*a;
num+=5;
}
else
{
num+=sum/a+1;
sum=0;
}
if(sum<=b&&sum!=0)
num++;
else if(sum>b&&sum<=2*b)
num+=2;
}
cout<<num<<endl;
return 0;
}
目前写的比较繁琐,后续的话会考虑精简一下