#include <cstdio>
#include <cmath>
using namespace std;
inline void read(int &x){
int w = 0;x=0;char c=getchar();
while(c<'0'||c>'9')w|=c=='-',c=getchar();
while(c>='0'&&c<='9')x=x*10+(c^48),c=getchar();
x=w?-x:x;
}
double get(int x, int y, int z, int w) {return sqrt(((double)x - (double)z) * ((double)x - (double)z) + ((double)y - (double)w) * ((double)y - (double)w));}
struct pos {
int x, y;
bool sur=false;
} a[1005];
int n,k,t,ans=0;
int main(){
read(n);read(t);read(k);
for (int i = 1; i <= n; ++i)read(a[i].x),read(a[i].y);
for (int i = 1; i <= k; ++i) {
int x, y;
read(x);read(y);
for (int j = 1; j <= n; ++j)
if (a[j].x == x && a[j].y == y) {
a[j].sur = true;
break;
}
}
for (int i = 1; i <= t; ++i) {
int x, y;
read(x);read(y);
double maxDist = -1;
int cnt = 0;
for (int j = 1; j <= n; ++j)
if (get(x, y, a[j].x, a[j].y) > maxDist) {
cnt = j;
maxDist = get(x, y, a[j].x, a[j].y);
}
if (a[cnt].sur) ++ans;
}
printf("%d",ans);
}
看了题解之后还是不明白,抄了一遍也不知道问题出在哪。