0
点赞
收藏
分享

微信扫一扫

C++墓地雕塑

精进的医生 2022-03-27 阅读 26

问题描述

输入

输出

Sample Input
2 1
2 3
3 1
10 10
Sample Output
1666.6667
1000.0
1666.6667
0.0

注:
输入的前三组数据如图所示。黑色柱表示原始雕像,空圆表示新的等距位置,箭头表示现有雕像的运动计划。

在这里插入图片描述

CODE

#include <bits/stdc++.h>
#define for_0(i,n) for(i=0;i<(n);i++)
using namespace std;
typedef double db;
double acm(int n,int m)
{
	db p = 0;
	int i,j = 1;
	for_0(i,n)
	{
		while(i*m > j*n)
		  j++;
		p += min((db)j/m-(db)i/n,(db)i/n-(db)(j-1)/m);
	}
	return p*10000;
}
int main()
{
	int n,m;
	while(~scanf("%d%d",&n,&m))
		printf("%.4lf\n",acm(n,n+m));
	return 0;
}

关注我,天天赞天天看!

举报

相关推荐

0 条评论