題目連結:1093
---暈暈的--
之前做這題的時候都是int----------會産生無解的可能---如果k大于2就一定有解--(每次都可以讓香蕉靠近終點)
是以下面的代碼中的i可以無限的打--- n / i 可以為實數--我也不知道為什就是可以了-------
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
void solve()
{
double n,k;scanf("%lf%lf",&n,&k);
if(n<=k)
printf("%lld\n",(long long)n);
/*else if(k<3)
{
printf("-1\n");
}*/
else
{
double s=0,i=1.0;
while (n)
{
s+=min((k/i),n)*i;
n-=min((k/i),n);
i+=2;
}
if (n)
printf("-1\n");
else
{
long long ss=s;
if (s>ss) ss++;
printf("%lld\n",ss);
}
}
}
int main()
{
solve();
return 0;
}