求助!样例全过,20pts
查看原帖
求助!样例全过,20pts
1251905
cao_20115楼主2024/2/23 22:41

Code

#include <cstdio>
using namespace std;
struct node{
    int x;
    int y;
    int flag = false;
};
int f(int a, int b, int c, int d) {
    return (a - c) * (a - c) + (b - d) * (b - d);
}
node a[1010];
int n, k, t;
int out;
int main() {
    scanf("%d %d %d", &n, &k, &t);
    for (int i = 0; i < n; ++i) {
        scanf("%d %d", &a[i].x, &a[i].y);
    }
    for (int i = 0; i < k; ++i) {
        int x, y;
        scanf("%d %d", &x, &y);
        for (int j = 0; j < n; ++j) {
            if (a[i].x == x && a[i].y == y) {
                a[i].flag = true;
                break;
            }
        }
    }
    for (int i = 0; i < t; ++i) {
        int x, y;
        scanf("%d %d", &x, &y);
        int d_max = -1;
        int ans = 0;
        for (int j = 0; j < n; ++j) {
            if (f(x, y, a[j].x, a[j].y) > d_max) {
                ans = j;
                d_max = f(x, y, a[j].x, a[j].y);
            }
        }
        if (a[ans].flag == true) {
            out++;
        }
    }
    printf("%d", out);
    return 0;
}

我一直想不通

2024/2/23 22:41
加载中...