3089194_ac_156ms_240k.cpp

来自「北大大牛代码 1240道题的原代码 超级权威」· C++ 代码 · 共 42 行

CPP
42
字号
#include <stdio.h>
#include <math.h>

const double pai = acos(-1);

int main()
{
	int n, i, k;
	double min, max, mid;
	double len[10001];
	int cnt, cas;

	scanf("%d",&cas);
	while(cas--)
	{
		scanf("%d%d",&n,&k);
		k++;
		for(i = 0; i < n; i++)
		{
			scanf("%lf",&len[i]);
			len[i] *= len[i];
		}
		min = 0.0; max = 100000000.0;
		while(min + 1e-7< max)
		{
			mid = (max+min)/2;
			cnt = 0;
			for(i = 0; i < n; i++)
			{
				cnt += (int)floor(len[i]/mid);
			}
			if(cnt < k)
				max = mid;
			else
				min = mid;
		}
		min *= pai;
		printf("%.4lf\n",min);
	}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?