Hack 按照离原点距离排序
查看原帖
Hack 按照离原点距离排序
766573
chenbs楼主2025/2/6 09:11

被 hack 的代码

按照离原点距离排序很好卡,放一个大圆就行了。

数据生成器:

#include<bits/stdc++.h>
using namespace std;
#define int long long
struct node {
	int x,y;
} a[100005];
signed main() {
	int r=1313845; // 圆的半径
	int cnt=0;
	for(int i=1; i<r; i++) {
		int t=r*r-i*i;
		int st=sqrt(t)+0.5;
		if(st*st==t) {
			a[++cnt]={i,st};
			a[++cnt]={-i,st};
			a[++cnt]={i,-st};
			a[++cnt]={-i,-st};
		}
	}
	a[++cnt]={r-1,0};
	a[++cnt]={r+1,0};
	cout<<cnt<<'\n';
	for(int i=1; i<=cnt; i++) cout<<a[i].x<<" "<<a[i].y<<'\n';
	return 0;
}
2025/2/6 09:11
加载中...