AT3626 【Kaiden】

我今天倒要看看有谁还是用INT的!!!

献数据:1 ≤ K, A, B ≤ 10^18

long long int k,a,b;

如果一天爬的高度小于一天降下的高度,而且一天无法爬上去,

if(a<=b&&a<k)cout<<-1;

如果一天就能爬上去,

else if(k<=a)cout<<1;

大佬蒟蒻是这么想的:我们如果能爬到k-a这个点,就肯定能爬上去了,记得加1。但是可能会出现没有余数的情况(已经爬上去了),那还要再判断,麻烦了很多很多一点。

这个方法我用了很多遍了:将被除数减1,这样能避免没有余数的情况。

注:减1之后除出来的余数为0,其实它本来的余数为1。

else cout<<(k-a-1)/(a-b)*2+3;

END:

cout<<"\n";//岛国的题要换行!!!