21693_Golygon

2022-5-16 18:20| 发布者: Hocassian| 查看: 94| 评论: 0|原作者: 肇庆学院ACM合集

摘要:
C:\Users\Administrator\Downloads\2019-10-12-10-14-4-89505765632700-Problem List-采集的数据-后羿采集器.html

Pro.ID

21693

Title

Golygon

Title链接

http://10.20.2.8/oj/exercise/problem?problem_id=21693

AC

0

Submit

1

Ratio

0.00%

时间&空间限制

  • Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 65536/32768 K (Java/Others)
  • 描述

    Golygon is an interesting type of simple polygon. If a golygon with n edges exist, then we can draw it out on the Cartesian plane using the following procedure:

    Starting at the origin, set the initial direction to north (or east, south, west), then go straightforward 1 unit, choose to turn left or right, and then go straightforward 2 units, choose to turn left or right again, and then go straightforward 3 units, choose to turn left or right the third time, …., and then go straightforward n units, and choose to turn left or right the n-th time, if the path has returned to the origin and the current direction is the same as the initial direction, and there is no crossing in the whole path, then the resulting polygon is a golygon with n edges. The following picture shows a sample golygon with 8 edges. This golygon can be described by the vertices sequence: (0, 0), (0, 1), (2, 1), (2, -2), (-2, -2), (-2, -7), (-8, -7), (-8, 0).

    Of course there is no guarantee that a golygon with n edges always exists. And even if it exists, when you're trying to follow the above procedure to draw it out, you must carefully determine how to change your direction each time, otherwise the resulting figure will not be a valid golygon.

    Now, given the number of edges, n, please determine whether such a golygon exists or not, and if it really exists, please describe the vertices sequence of a sample one.

    输入

    Input contains several test cases. The first line is a single integer, T ( 1 ≤ T ≤ 20 ), indicating the number of cases. Each case has only one line containing an integer, N ( 1 ≤ N ≤ 10000 ), the number of edges of the golygon.

    输出

    Description

    Golygon is an interesting type of simple polygon. If a golygon with n edges exist, then we can draw it out on the Cartesian plane using the following procedure:

    Starting at the origin, set the initial direction to north (or east, south, west), then go straightforward 1 unit, choose to turn left or right, and then go straightforward 2 units, choose to turn left or right again, and then go straightforward 3 units, choose to turn left or right the third time, …., and then go straightforward n units, and choose to turn left or right the n-th time, if the path has returned to the origin and the current direction is the same as the initial direction, and there is no crossing in the whole path, then the resulting polygon is a golygon with n edges. The following picture shows a sample golygon with 8 edges. This golygon can be described by the vertices sequence: (0, 0), (0, 1), (2, 1), (2, -2), (-2, -2), (-2, -7), (-8, -7), (-8, 0).

    Of course there is no guarantee that a golygon with n edges always exists. And even if it exists, when you're trying to follow the above procedure to draw it out, you must carefully determine how to change your direction each time, otherwise the resulting figure will not be a valid golygon.

    Now, given the number of edges, n, please determine whether such a golygon exists or not, and if it really exists, please describe the vertices sequence of a sample one.

    Input

    Input contains several test cases. The first line is a single integer, T ( 1 ≤ T ≤ 20 ), indicating the number of cases. Each case has only one line containing an integer, N ( 1 ≤ N ≤ 10000 ), the number of edges of the golygon.

    Output

    For each case, if the desired golygon does not exist, just output "NO", otherwise please output "YES", followed by the vertices sequence of a sample golygon, one vertex per line. Each vertex is described by two integers x and y, the x-coordinate and y-coordinate. These two integers are separated by a single space. The first vertex must be (0, 0). There may be several solutions, any of them is acceptable.

    Sample Input

    4
    1
    2
    4
    8

    Sample Output

    NO
    NO
    NO
    YES
    0 0
    0 1
    2 1
    2 -2
    -2 -2
    -2 -7
    -8 -7
    -8 0

    Source

    样例输入

    4
    1
    2
    4
    8

    样例输出

    NO
    NO
    NO
    YES
    0 0
    0 1
    2 1
    2 -2
    -2 -2
    -2 -7
    -8 -7
    -8 0

    作者


    路过

    雷人

    握手

    鲜花

    鸡蛋

    最新评论

    返回顶部