被 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;
}