您的位置:首页 > 其它

UVA 1363

2016-09-27 15:44 225 查看
【题目分析】

分组解决。

【代码】

#include <cstdio>
#define min(a,b) a<b?a:b
#define ll long long
ll ans,x,y;
int n,k,p,j;
int main()
{
while (scanf("%d%d",&n,&k)!=EOF)
{
ans=0;
for (int i=1;i<=n;i=j+1)
{
p=k/i;
if (p==0) j=n;
else j=min(k/p,n);
x=k%i;
y=k%j;
ans+=(x+y)*(j-i+1)/2;
}
printf("%lld\n",ans);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  uva