C++墓地雕塑

阅读 27

2022-03-27

问题描述

输入

输出

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)

0 0 举报