TLE求调
  • 板块P1959 遗址
  • 楼主yangyi11
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/9/28 15:58
  • 上次更新2024/9/28 18:01:24
查看原帖
TLE求调
1127070
yangyi11楼主2024/9/28 15:58
#include<bits/stdc++.h>
using namespace std;
int n,x[3005],y[3005],maxn;
bool sfind(int a,int b){
	for(int i=1;i<=n;i++){
		if(x[i]==a&&y[i]==b){
			return 1;
		}
	}
	return 0;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>x[i]>>y[i];
	}
	for(int i=1;i<=n;i++){
		for(int j=i+1;j<=n;j++){
			int xx1,yy1,xx2,yy2;
			xx1=x[j]+(y[j]-y[i]);
			yy1=y[j]+(x[j]-x[i]);
			xx2=x[i]+(y[j]-y[i]);
			yy2=y[i]+(x[j]-x[i]);
			if(xx1>=0&&yy1<=5000&&xx2>=0&&yy2<=5000&&sfind(xx1,yy1)&&sfind(xx2,yy2)){
				maxn=max(maxn,abs(y[j]-y[i])*abs(y[j]-y[i])+abs(x[j]-x[i])*abs(x[j]-x[i]));
			}
			xx1=x[j]+(y[j]-y[i]);
			yy1=y[j]-(x[j]-x[i]);
			xx2=x[i]+(y[j]-y[i]);
			yy2=y[i]-(x[j]-x[i]);
			if(xx1>=0&&yy1<=5000&&xx2>=0&&yy2<=5000&&sfind(xx1,yy1)&&sfind(xx2,yy2)){
				maxn=max(maxn,abs(y[j]-y[i])*abs(y[j]-y[i])+abs(x[j]-x[i])*abs(x[j]-x[i]));
			}
		}
	}
	cout<<maxn;
	return 0;
}
2024/9/28 15:58
加载中...