您的位置:首页 > 其它

【51nod】1246 罐子和硬币

2017-02-13 21:36 260 查看
#include <bits/stdc++.h>
using namespace std;
#define LL long long
int main()
{
LL c, n, k;
while(~scanf("%lld%lld%lld", &n, &k, &c))
{
LL haha=k/n;
if(haha*n>=c)//这种情况,平分后乱取就行
printf("%lld\n", c);
else
{
LL max=n-k%n+c;//平分后取的情况
LL a=k/(haha+1);//几个罐子不放,其余罐子平分,
//就是如果全部平分,有几个罐子还剩1个 ,就是“n-k%n”+c情况
//但如果有几个不放,平分剩下几个,当不放的罐子n-a<n-k%n
//即 k%n> k/(k/n+1)时才是最优解
if(max>n-a+c)
max=n-a+c;
printf("%lld\n",max);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: