这为什么只有46分,求调
查看原帖
这为什么只有46分,求调
688359
wangbo0楼主2023/10/16 09:51
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define N 105
int n;double ans,pai=3.141592653589;
struct node{double x,y,r;}a[N];
bool cmp(node x,node y){return x.r>y.r;}
signed main()
{
	ios::sync_with_stdio(0);cin.tie();cout.tie();
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i].x>>a[i].y>>a[i].r;
	sort(a+1,a+n+1,cmp);
	for(int i=1;i<=n;i++)
	{
		int u=0;
		for(int j=1;j<i;j++)
			if(((a[j].x-a[j].r)<=(a[i].x-a[i].r)&&(a[i].x+a[i].r)<=(a[j].x+a[j].r))&&((a[j].y-a[j].r)<=(a[i].y-a[i].r)&&(a[i].y+a[i].r)<=(a[j].y+a[j].r)))
			{
				if(u==0)
					u=1;
				else
					u=0;
			}
		if(u==0)
			ans+=pai*a[i].r*a[i].r;
		else
			ans-=pai*a[i].r*a[i].r;
	}
	cout<<fixed<<setprecision(2)<<ans<<endl;
	return 0;
}
2023/10/16 09:51
加载中...