问题描述
输入
输出
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;
}