测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A15042. Circular Maze

编程题 普及/提高-

题目描述

Each test contains multiple test cases. The first line contains an integer $t$ ( $1\le t\le 20$ ) — the number of test cases. The descriptions of the $t$ test cases follow.

The first line of each test case contains an integer $n$ ( $1 \leq n \leq 5000$ ) — the number of walls.

Each of the following $n$ lines each contains a character (C for circular, and S for straight) and three integers:

- either $r, \theta_1, \theta_2$ ( $1 \leq r \leq 20$ and $0 \leq \theta_1,\theta_2 < 360$ with $\theta_1 \neq \theta_2$ ) if the wall is circular,
- or $r_1$ , $r_2$ and $\theta$ ( $1 \leq r_1 < r_2 \leq 20$ and $0 \leq \theta < 360$ ) if the wall is straight.

It is guaranteed that circular walls do not overlap (but two circular walls may intersect at one or two points), and that straight walls do not overlap (but two straight walls may intersect at one point). However, circular and straight walls can intersect arbitrarily.

输入格式

For each test case, print YES if the maze can be solved and NO otherwise.

输出格式

The two sample test cases correspond to the two mazes in the picture.

输入输出样例

输入 #1
2
5
C 1 180 90
C 5 250 230
C 10 150 140
C 20 185 180
S 1 20 180
6
C 1 180 90
C 5 250 230
C 10 150 140
C 20 185 180
S 1 20 180
S 5 10 0
输出 #1
YES
NO

说明/提示

The two sample test cases correspond to the two mazes in the picture.
上一题 去做题 下一题