#include <bits/stdc++.h>
#define ll long long
using namespace std;
int n,m,cnt,f[1000005],mky[1000005],k;
double uuu;
int ans;
double sum;
struct node{
int to,nxt;
double wei;
}e[2000005];
bool cmp(node a,node b){
return a.wei<b.wei;
}
int find(int x){
if(x==f[x]) return f[x];
return f[x]=find(f[x]);
}
void kruskal(){
int a,b;
k=m;
for(int i=1;i<=cnt;i++){
a=find(e[i].to);
b=find(e[i].nxt);
if(a!=b){
f[a]=b;
sum=e[i].wei;
k--;
if(k==1) return;
}
}
}
double u[1005],v[1005];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
f[i]=i;
cin>>mky[i];
}
cin>>m;
for(int i=1;i<=m;i++) cin>>u[i]>>v[i];
for(int i=1;i<=m;i++){
for(int j=i+1;j<=m;j++){
uuu=(sqrt((double)(u[i] - u[j]) * (u[i] - u[j]) + (double)(v[i] - v[j]) * (v[i] - v[j])));
e[++cnt].to=i;
e[cnt].nxt=j;
e[cnt].wei=uuu;
}
}
sort(e+1,e+cnt+1,cmp);
kruskal();
for(int i=1;i<=n;i++)
if(mky[i]>=sum)
ans++;
printf("%d\n",ans);
return 0;
}