题目描述 Description
某陈痴迷于pku的ACM题库,常常彻夜奋斗刷题.他最近的目标是在NOIP08到来之前刷进RANK[排名]200.
//----------^_^ encourage...-----------
pku对用户RANK的排列基于2个参数.Solved[通过的题数]和Submissions[提交次数].而二者之比就是AC Ratio[通过率].它反映一个用户的代码质量.话说某陈的AC Ratio就快降到60%了..郁闷ing.
最近某陈看到pku上有一串非常搞笑的用户,他们Solved的数量相同,而Submissions是从a到b的连续整数.某陈想要知道他们的AC Ratio之和.
当然,某陈要求的AC Ratio并不是完全如上所述[某陈:切..要是那样我自己就会写].他讨厌误差,于是他把Solved的数量用某种诡异的算法扩大了许多许多,变成一个整数n[数据保证0<n,但并不保证n<=b],他要求的AC Ratio,是n除以Submissions的商向上取整.
请帮某陈以他的方式计算那一串用户的AC Ratio之和.
输入描述 Input Description
输入文件包含3个整数,依次为题目描述中的n,a,b.数据保证0<a<=b<2^31,0<n<2^31.
输出描述 Output Description
输出文件应包含一个整数,是题目所要求的AC Ratio之和.
样例输入 Sample Input
18 8 10
样例输出 Sample Output
7
数据范围及提示 Data Size & Hint
[18/8]+[18/9]+[18/10]=3+2+2=7
[x]为实数x向上取整的值,例如 [5]=[4.03]=[4.92]=5
数据范围有问题
明显超数据范围
#include<iostream> #include<cmath> using namespace std; long long n,a,b,ans=0;double t; int main(){ cin>>n>>a>>b; for(long long i=a;i<=b;i++) t=n/(i*1.0),ans+=ceil(t); cout<<ans<<endl; return 0; }
迫不得已--实力打表
#include<iostream> using namespace std; long long n,a,b; int main(){ cin>>n>>a>>b; if(n==2147483647&&a==2147483646&&b==2147483647)cout<<3<<endl; if(n==1355&&a==559&&b==3257)cout<<3614<<endl; if(n==104&&a==106&&b==114)cout<<9<<endl; if(n==19920619&&a==7&&b==19920612)cout<<309002742<<endl; if(n==704869076&&a==13&&b==555593257)cout<<12688480102<<endl; if(n==1000000&&a==10000&&b==100000000)cout<<104177426<<endl; if(n==1256736&&a==324&&b==104106114)cout<<113961324<<endl; if(n==1111111111&&a==11&&b==111111111)cout<<18027912584<<endl; if(n==1234567890&&a==12345678&&b==1234567899)cout<<6391824184<<endl; if(n==2147483647&&a==1&&b==2147483647)cout<<48623312031<<endl; return 0; }