暴力不仅可过,还跑在1s以内
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
long long n,m,i,j,x[100001],y[100001],p,q,k,a[101],b,c,d,z[101];
int main()
{
scanf("%lld",&n);
for(i=1;i<=n;i=i+1)scanf("%lld%lld",&x[i],&y[i]);
scanf("%lld",&m);
for(i=1;i<=m;i=i+1)
{
scanf("%lld%lld%lld",&p,&q,&k);
for(j=1;j<=k;j=j+1){a[j]=-1;z[j]=0;}
for(j=1;j<=n;j=j+1)
{
c=(x[j]-p)*(x[j]-p)+(y[j]-q)*(y[j]-q);
if(c>a[k])
{
d=0;
for(b=k-1;b>=1;b=b-1)if(c<=a[b]){d=b;break;}
for(b=k;b>d+1;b=b-1){a[b]=a[b-1];z[b]=z[b-1];}
a[d+1]=c;z[d+1]=j;
}
}
printf("%lld\n",z[k]);
}
return 0;
}