P2504
/*
*/
#include<bits/stdc++.h>
#define r read()
#define ll long long
#define MAX 0x3f3f3f3f
#define MIN -0x3f3f3f3f
using namespace std;
ll read();
int n,p[1010],m,bn,dn,d,bcj[510],pd;
struct a1{
int xx,yy;
}sx[510];
struct a2{
int a,b;
double v;
}s[25001000];
ll read(){
int dx=0,x=1;
char xx=getchar();
for(;xx<'0'||xx>'9';xx=getchar())
if(xx=='-')
x=-1;
for(;xx>='0'&&xx<='9';dx=dx*10+xx-48,xx=getchar());
return dx*x;
}
bool a3(a2 x,a2 y){
return x.v<y.v;
}
int a4(int x){
if(bcj[x]==x)
return x;
bcj[x]=a4(bcj[x]);
return bcj[x];
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
n=r;
for(int i=1;i<=n;p[i]=r,i++);
m=r;
for(int i=1;i<=m;bcj[i]=i,i++);
for(int i=1;i<=m;sx[i]={r,r},i++);
for(int i=1;i<=m;i++)
for(int j=i+1;j<=m;j++)
if(i!=j){
bn++;
s[bn]={i,j,sqrt((sx[i].xx-sx[j].xx)*(sx[i].xx-sx[j].xx)+(sx[i].yy-sx[j].yy)*(sx[i].yy-sx[j].yy))};
}
sort(s+1,s+bn+1,a3);
for(int i=1;i<=bn;i++){
if(a4(s[i].a)!=a4(s[i].b)){
dn++;
bcj[a4(s[i].a)]=bcj[a4(s[i].b)];
}
if(dn==m-1){
d=s[i].v;
break;
}
}
for(int i=1;i<=n;pd+=p[i]>=d,i++);
cout<<pd;
return 0;
}
wa 5个