6~10 WA,求教
查看原帖
6~10 WA,求教
592238
Elairin176楼主2022/12/18 10:29
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
const double eps=1e-6;
int n;
long long cnt;
double d1,d2,d3,d4;
double dist(int x1,int x2,int y1,int y2){
	return sqrt(double((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)));
}
struct pos{
	int x;
	int y;
}a[501];
bool cmp(pos a,pos b){
	if(a.y==b.y){
		return a.x>b.x;
	}
	return a.y>b.y;
}
int main(void){
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		scanf("%d%d",&a[i].x,&a[i].y);
	}
	sort(a,a+n,cmp);
	for(int a1=0;a1<n;a1++){
		for(int a2=a1+1;a2<n;a2++){
			d1=dist(a[a1].x,a[a2].x,a[a1].y,a[a2].y);
			for(int a3=a2+1;a3<n;a3++){
				d4=dist(a[a1].x,a[a3].x,a[a1].y,a[a3].y);
				if(d1!=d4){
					continue;
				}
				for(int a4=a3+1;a4<n;a4++){
					/*if(a1==a2||a1==a3||a1==a4||a2==a3||a2==a4||a3==a4){
						continue;
					}*/
					d2=dist(a[a2].x,a[a4].x,a[a2].y,a[a4].y);
					d3=dist(a[a3].x,a[a4].x,a[a3].y,a[a4].y);
					if(d1==d2&&d1==d3&&d2==d3&&d2==d4&&d3==d4){
						cnt++;
					}
					//cout<<d1<<" "<<d2<<" "<<d3<<" "<<d4<<endl;
					//cout<<"value="<<a1<<" "<<a2<<" "<<a3<<" "<<a4<<endl;
				}
			}
		}
	}
	cout<<cnt<<endl;
}
2022/12/18 10:29
加载中...