全wa求调
查看原帖
全wa求调
1189898
jayzhuhe楼主2025/8/2 15:30
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'

struct node
{
	int x;
	int y;
	int r;
}p[100010];

struct node1
{
	double l;
	double r;
}a[100010];
const double PI = acos(-1);
bool cmp(node1 x,node1 y)
{
	if(x.l!=y.l)
	return x.l<y.l;
	return x.r<y.r;
}
signed main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	cin>>p[i].x>>p[i].y>>p[i].r;
	for(int i=1;i<=n;i++)
	{
		double a1 = atan2(p[i].y,p[i].x);
		double dis = sqrtl(p[i].x*p[i].x+p[i].y*p[i].y);
		double a2 = asin(p[i].r*1.0/(dis));
		double ans1 = a1-a2;
		double ans2 = a1+a2;
		a[i]={ans1,ans2};
	}
	sort(a+1,a+1+n,cmp);
	double p=0;
	if(a[1].l>0)
	p+=a[1].l;
	for(int i=2;i<=n;i++)
	{
		if(a[i].l>a[i-1].r)
		p+=a[i].l-a[i-1].r;
	}
	if(a[n].r<PI/2)
	p+=PI/2-a[n].r; 
	printf("%.3lf\n",p/PI*2);
	return 0;
}
2025/8/2 15:30
加载中...