?? pku2236.cpp
字號:
#include <stdio.h>
typedef struct
{
int x, y;
} Point;
Point p[1010];
int ds[1010];
int N, D;
int get_id(int x)
{
int root;
if (ds[x] == x || ds[x] == -1)
{
return x;
}
return ds[x] = get_id(ds[x]);
}
int dis(int i, int j)
{
return (p[i].x - p[j].x) * (p[i].x - p[j].x) + (p[i].y - p[j].y) * (p[i].y - p[j].y);
}
int main()
{
int i, s, e;
char op;
scanf("%d%d", &N, &D);
D *= D;
for (i = 1; i <= N; i++)
{
scanf("%d%d", &p[i].x, &p[i].y);
ds[i] = -1;
}
while (scanf("%c", &op) != EOF)
{
if (op == 'O')
{
scanf("%d", &s);
ds[s] = s;
for (i = 1; i <= N; i++)
{
if (ds[i] != -1 && i != s && dis(i, s) <= D)
{
ds[get_id(s)] = get_id(i);
}
}
}
if (op == 'S')
{
scanf("%d%d", &s, &e);
if (get_id(s) == get_id(e))
{
puts("SUCCESS");
}
else
{
puts("FAIL");
}
}
}
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -