rt。
#include<bits/stdc++.h>
using namespace std;
int m,n;
int s[505];
pair<int,int> t[1005];
inline double cal(const pair<int,int>& a,const pair<int,int>& b){
return sqrt((a.first-b.first)*(a.first-b.first)+(a.second-b.second)*(a.second-b.second));
}
bool vis[1005];
void dfs(int u,int mid){
vis[u]=1;
for(int v=1;v<=n;++v){
if(!vis[v]&&cal(t[u],t[v])-mid<=1e-6) dfs(v,mid);
}
}
bool check(int mid){
dfs(1,mid);
bool fl=1;
for(int i=1;i<=n;++i){
if(!vis[i]) fl=0;
vis[i]=0;
}
return fl;
}
int main(){
ios::sync_with_stdio(0);
cin>>m;
for(int i=1;i<=m;++i) cin>>s[i];
cin>>n;
for(int i=1;i<=n;++i) cin>>t[i].first>>t[i].second;
sort(s+1,s+m+1);
s[0]=-1,s[m+1]=1e9;
int l=0,r=m+1;
//[l,r) satisfies check(l)=0, check(r)=1
while(r-l>1){
int mid=(l+r)>>1;
if(check(mid)) r=mid;
else l=mid;
}
cout<<m-r+1<<endl;
return 0;
}