QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#777835#5419. Triangleshaha#AC ✓1ms4092kbC++142.2kb2024-11-24 10:12:112024-11-24 10:12:11

Judging History

你现在查看的是最新测评结果

  • [2024-11-24 10:12:11]
  • 评测
  • 测评结果:AC
  • 用时:1ms
  • 内存:4092kb
  • [2024-11-24 10:12:11]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;

// n = 8, 9, 10 的方案

int A[8][6] = {
    0, 0, 9, 4, 0, 20,
    0, 20, 9, 4, 10, 20,
    10, 20, 9, 4, 11, 4,
    10, 20, 11, 4, 20, 20,
    20, 0, 20, 20, 11, 4,
    0, 0, 10, 0, 9, 4,
    10, 0, 11, 4, 9, 4,
    10, 0, 20, 0, 11, 4
};

int B[9][6] = {
    0, 0, 20, 0, 16, 12,
    0, 0, 16, 12, 0, 20,
    0, 20, 12, 14, 13, 20,
    20, 0, 20, 13, 16, 12,
    16, 16, 16, 12, 20, 13,
    16, 16, 20, 13, 20, 20,
    16, 16, 20, 20, 13, 20,
    16, 16, 13, 20, 12, 14,
    16, 16, 12, 14, 16, 12
};

int C[10][6] = {
    0, 0, 10, 8, 0, 20,
    20, 0, 10, 8, 20, 20,
    0, 20, 10, 8, 20, 20,
    0, 0, 8, 0, 5, 4,
    10, 3, 5, 4, 8, 0, 
    10, 3, 10, 8, 5, 4,
    10, 3, 8, 0, 12, 0,
    10, 3, 12, 0, 15, 4,
    10, 3, 15, 4, 10, 8,
    20, 0, 15, 4, 12, 0
};

void solve(int A[][6], int X, int Y) {
    // 用队列轮流把每个三角形拆成 4 个
    // 每个坐标后面都至少 7 个零,而所有三角形拆一轮数量乘 4,所以拆两轮就够了,无精度问题
    queue<vector<int>> q;
    for (int i = 0; i < X; i++) {
        vector<int> vec;
        for (int j = 0; j < 6; j++) vec.push_back(A[i][j] * ((int) 5e7));
        q.push(vec);
    }

    while (q.size() < Y) {
        vector<int> vec = q.front(); q.pop();
        int x1 = vec[0], y1 = vec[1];
        int x2 = vec[2], y2 = vec[3];
        int x3 = vec[4], y3 = vec[5];
        int x4 = (x1 + x2) / 2, y4 = (y1 + y2) / 2;
        int x5 = (x2 + x3) / 2, y5 = (y2 + y3) / 2;
        int x6 = (x3 + x1) / 2, y6 = (y3 + y1) / 2;
        q.push({x1, y1, x4, y4, x6, y6});
        q.push({x2, y2, x5, y5, x4, y4});
        q.push({x3, y3, x6, y6, x5, y5});
        q.push({x4, y4, x5, y5, x6, y6});
    }

    while (!q.empty()) {
        vector<int> vec = q.front(); q.pop();
        for (int i = 0; i < 6; i++) printf("%d%c", vec[i], "\n "[i < 5]);
    }
}

int main() {
    int n; scanf("%d", &n);
    if (n < 8) {
        printf("No\n");
        return 0;
    }

    printf("Yes\n");
    if (n % 3 == 2) solve(A, 8, n);
    else if (n % 3 == 0) solve(B, 9, n);
    else solve(C, 10, n);
    return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 3672kb

input:

2

output:

No

result:

ok no solution

Test #2:

score: 0
Accepted
time: 0ms
memory: 4068kb

input:

24

output:

Yes
800000000 800000000 1000000000 650000000 1000000000 1000000000
800000000 800000000 1000000000 1000000000 650000000 1000000000
800000000 800000000 650000000 1000000000 600000000 700000000
800000000 800000000 600000000 700000000 800000000 600000000
0 0 500000000 0 400000000 300000000
1000000000 0 ...

result:

ok 24 acute triangles

Test #3:

score: 0
Accepted
time: 1ms
memory: 3968kb

input:

1

output:

No

result:

ok no solution

Test #4:

score: 0
Accepted
time: 1ms
memory: 3972kb

input:

3

output:

No

result:

ok no solution

Test #5:

score: 0
Accepted
time: 1ms
memory: 3728kb

input:

4

output:

No

result:

ok no solution

Test #6:

score: 0
Accepted
time: 1ms
memory: 3800kb

input:

5

output:

No

result:

ok no solution

Test #7:

score: 0
Accepted
time: 1ms
memory: 3688kb

input:

6

output:

No

result:

ok no solution

Test #8:

score: 0
Accepted
time: 1ms
memory: 4000kb

input:

7

output:

No

result:

ok no solution

Test #9:

score: 0
Accepted
time: 1ms
memory: 4056kb

input:

8

output:

Yes
0 0 450000000 200000000 0 1000000000
0 1000000000 450000000 200000000 500000000 1000000000
500000000 1000000000 450000000 200000000 550000000 200000000
500000000 1000000000 550000000 200000000 1000000000 1000000000
1000000000 0 1000000000 1000000000 550000000 200000000
0 0 500000000 0 450000000 ...

result:

ok 8 acute triangles

Test #10:

score: 0
Accepted
time: 0ms
memory: 3808kb

input:

9

output:

Yes
0 0 1000000000 0 800000000 600000000
0 0 800000000 600000000 0 1000000000
0 1000000000 600000000 700000000 650000000 1000000000
1000000000 0 1000000000 650000000 800000000 600000000
800000000 800000000 800000000 600000000 1000000000 650000000
800000000 800000000 1000000000 650000000 1000000000 1...

result:

ok 9 acute triangles

Test #11:

score: 0
Accepted
time: 1ms
memory: 3808kb

input:

10

output:

Yes
0 0 500000000 400000000 0 1000000000
1000000000 0 500000000 400000000 1000000000 1000000000
0 1000000000 500000000 400000000 1000000000 1000000000
0 0 400000000 0 250000000 200000000
500000000 150000000 250000000 200000000 400000000 0
500000000 150000000 500000000 400000000 250000000 200000000
5...

result:

ok 10 acute triangles

Test #12:

score: 0
Accepted
time: 1ms
memory: 3832kb

input:

11

output:

Yes
0 1000000000 450000000 200000000 500000000 1000000000
500000000 1000000000 450000000 200000000 550000000 200000000
500000000 1000000000 550000000 200000000 1000000000 1000000000
1000000000 0 1000000000 1000000000 550000000 200000000
0 0 500000000 0 450000000 200000000
500000000 0 550000000 20000...

result:

ok 11 acute triangles

Test #13:

score: 0
Accepted
time: 1ms
memory: 3748kb

input:

12

output:

Yes
0 0 800000000 600000000 0 1000000000
0 1000000000 600000000 700000000 650000000 1000000000
1000000000 0 1000000000 650000000 800000000 600000000
800000000 800000000 800000000 600000000 1000000000 650000000
800000000 800000000 1000000000 650000000 1000000000 1000000000
800000000 800000000 1000000...

result:

ok 12 acute triangles

Test #14:

score: 0
Accepted
time: 1ms
memory: 4056kb

input:

13

output:

Yes
1000000000 0 500000000 400000000 1000000000 1000000000
0 1000000000 500000000 400000000 1000000000 1000000000
0 0 400000000 0 250000000 200000000
500000000 150000000 250000000 200000000 400000000 0
500000000 150000000 500000000 400000000 250000000 200000000
500000000 150000000 400000000 0 600000...

result:

ok 13 acute triangles

Test #15:

score: 0
Accepted
time: 0ms
memory: 3780kb

input:

14

output:

Yes
500000000 1000000000 450000000 200000000 550000000 200000000
500000000 1000000000 550000000 200000000 1000000000 1000000000
1000000000 0 1000000000 1000000000 550000000 200000000
0 0 500000000 0 450000000 200000000
500000000 0 550000000 200000000 450000000 200000000
500000000 0 1000000000 0 5500...

result:

ok 14 acute triangles

Test #16:

score: 0
Accepted
time: 1ms
memory: 4064kb

input:

15

output:

Yes
0 1000000000 600000000 700000000 650000000 1000000000
1000000000 0 1000000000 650000000 800000000 600000000
800000000 800000000 800000000 600000000 1000000000 650000000
800000000 800000000 1000000000 650000000 1000000000 1000000000
800000000 800000000 1000000000 1000000000 650000000 1000000000
8...

result:

ok 15 acute triangles

Test #17:

score: 0
Accepted
time: 1ms
memory: 3756kb

input:

16

output:

Yes
0 1000000000 500000000 400000000 1000000000 1000000000
0 0 400000000 0 250000000 200000000
500000000 150000000 250000000 200000000 400000000 0
500000000 150000000 500000000 400000000 250000000 200000000
500000000 150000000 400000000 0 600000000 0
500000000 150000000 600000000 0 750000000 2000000...

result:

ok 16 acute triangles

Test #18:

score: 0
Accepted
time: 1ms
memory: 3792kb

input:

17

output:

Yes
500000000 1000000000 550000000 200000000 1000000000 1000000000
1000000000 0 1000000000 1000000000 550000000 200000000
0 0 500000000 0 450000000 200000000
500000000 0 550000000 200000000 450000000 200000000
500000000 0 1000000000 0 550000000 200000000
0 0 225000000 100000000 0 500000000
450000000...

result:

ok 17 acute triangles

Test #19:

score: 0
Accepted
time: 1ms
memory: 3772kb

input:

18

output:

Yes
1000000000 0 1000000000 650000000 800000000 600000000
800000000 800000000 800000000 600000000 1000000000 650000000
800000000 800000000 1000000000 650000000 1000000000 1000000000
800000000 800000000 1000000000 1000000000 650000000 1000000000
800000000 800000000 650000000 1000000000 600000000 7000...

result:

ok 18 acute triangles

Test #20:

score: 0
Accepted
time: 1ms
memory: 3772kb

input:

19

output:

Yes
0 0 400000000 0 250000000 200000000
500000000 150000000 250000000 200000000 400000000 0
500000000 150000000 500000000 400000000 250000000 200000000
500000000 150000000 400000000 0 600000000 0
500000000 150000000 600000000 0 750000000 200000000
500000000 150000000 750000000 200000000 500000000 40...

result:

ok 19 acute triangles

Test #21:

score: 0
Accepted
time: 1ms
memory: 3784kb

input:

20

output:

Yes
1000000000 0 1000000000 1000000000 550000000 200000000
0 0 500000000 0 450000000 200000000
500000000 0 550000000 200000000 450000000 200000000
500000000 0 1000000000 0 550000000 200000000
0 0 225000000 100000000 0 500000000
450000000 200000000 225000000 600000000 225000000 100000000
0 1000000000...

result:

ok 20 acute triangles

Test #22:

score: 0
Accepted
time: 1ms
memory: 3792kb

input:

21

output:

Yes
800000000 800000000 800000000 600000000 1000000000 650000000
800000000 800000000 1000000000 650000000 1000000000 1000000000
800000000 800000000 1000000000 1000000000 650000000 1000000000
800000000 800000000 650000000 1000000000 600000000 700000000
800000000 800000000 600000000 700000000 80000000...

result:

ok 21 acute triangles

Test #23:

score: 0
Accepted
time: 1ms
memory: 3776kb

input:

22

output:

Yes
500000000 150000000 250000000 200000000 400000000 0
500000000 150000000 500000000 400000000 250000000 200000000
500000000 150000000 400000000 0 600000000 0
500000000 150000000 600000000 0 750000000 200000000
500000000 150000000 750000000 200000000 500000000 400000000
1000000000 0 750000000 20000...

result:

ok 22 acute triangles

Test #24:

score: 0
Accepted
time: 1ms
memory: 3792kb

input:

23

output:

Yes
0 0 500000000 0 450000000 200000000
500000000 0 550000000 200000000 450000000 200000000
500000000 0 1000000000 0 550000000 200000000
0 0 225000000 100000000 0 500000000
450000000 200000000 225000000 600000000 225000000 100000000
0 1000000000 0 500000000 225000000 600000000
225000000 100000000 22...

result:

ok 23 acute triangles

Test #25:

score: 0
Accepted
time: 1ms
memory: 4024kb

input:

25

output:

Yes
500000000 150000000 500000000 400000000 250000000 200000000
500000000 150000000 400000000 0 600000000 0
500000000 150000000 600000000 0 750000000 200000000
500000000 150000000 750000000 200000000 500000000 400000000
1000000000 0 750000000 200000000 600000000 0
0 0 250000000 200000000 0 500000000...

result:

ok 25 acute triangles

Test #26:

score: 0
Accepted
time: 1ms
memory: 4092kb

input:

26

output:

Yes
500000000 0 550000000 200000000 450000000 200000000
500000000 0 1000000000 0 550000000 200000000
0 0 225000000 100000000 0 500000000
450000000 200000000 225000000 600000000 225000000 100000000
0 1000000000 0 500000000 225000000 600000000
225000000 100000000 225000000 600000000 0 500000000
0 1000...

result:

ok 26 acute triangles

Test #27:

score: 0
Accepted
time: 1ms
memory: 3788kb

input:

27

output:

Yes
800000000 800000000 1000000000 1000000000 650000000 1000000000
800000000 800000000 650000000 1000000000 600000000 700000000
800000000 800000000 600000000 700000000 800000000 600000000
0 0 500000000 0 400000000 300000000
1000000000 0 900000000 300000000 500000000 0
800000000 600000000 400000000 3...

result:

ok 27 acute triangles

Test #28:

score: 0
Accepted
time: 1ms
memory: 3788kb

input:

28

output:

Yes
500000000 150000000 400000000 0 600000000 0
500000000 150000000 600000000 0 750000000 200000000
500000000 150000000 750000000 200000000 500000000 400000000
1000000000 0 750000000 200000000 600000000 0
0 0 250000000 200000000 0 500000000
500000000 400000000 250000000 700000000 250000000 200000000...

result:

ok 28 acute triangles

Test #29:

score: 0
Accepted
time: 1ms
memory: 3864kb

input:

29

output:

Yes
500000000 0 1000000000 0 550000000 200000000
0 0 225000000 100000000 0 500000000
450000000 200000000 225000000 600000000 225000000 100000000
0 1000000000 0 500000000 225000000 600000000
225000000 100000000 225000000 600000000 0 500000000
0 1000000000 225000000 600000000 250000000 1000000000
4500...

result:

ok 29 acute triangles

Test #30:

score: 0
Accepted
time: 1ms
memory: 4060kb

input:

30

output:

Yes
800000000 800000000 650000000 1000000000 600000000 700000000
800000000 800000000 600000000 700000000 800000000 600000000
0 0 500000000 0 400000000 300000000
1000000000 0 900000000 300000000 500000000 0
800000000 600000000 400000000 300000000 900000000 300000000
500000000 0 900000000 300000000 40...

result:

ok 30 acute triangles

Test #31:

score: 0
Accepted
time: 1ms
memory: 4064kb

input:

31

output:

Yes
500000000 150000000 600000000 0 750000000 200000000
500000000 150000000 750000000 200000000 500000000 400000000
1000000000 0 750000000 200000000 600000000 0
0 0 250000000 200000000 0 500000000
500000000 400000000 250000000 700000000 250000000 200000000
0 1000000000 0 500000000 250000000 70000000...

result:

ok 31 acute triangles

Test #32:

score: 0
Accepted
time: 1ms
memory: 3792kb

input:

32

output:

Yes
0 0 225000000 100000000 0 500000000
450000000 200000000 225000000 600000000 225000000 100000000
0 1000000000 0 500000000 225000000 600000000
225000000 100000000 225000000 600000000 0 500000000
0 1000000000 225000000 600000000 250000000 1000000000
450000000 200000000 475000000 600000000 225000000...

result:

ok 32 acute triangles

Test #33:

score: 0
Accepted
time: 1ms
memory: 3840kb

input:

33

output:

Yes
800000000 800000000 600000000 700000000 800000000 600000000
0 0 500000000 0 400000000 300000000
1000000000 0 900000000 300000000 500000000 0
800000000 600000000 400000000 300000000 900000000 300000000
500000000 0 900000000 300000000 400000000 300000000
0 0 400000000 300000000 0 500000000
8000000...

result:

ok 33 acute triangles

Test #34:

score: 0
Accepted
time: 1ms
memory: 3848kb

input:

34

output:

Yes
500000000 150000000 750000000 200000000 500000000 400000000
1000000000 0 750000000 200000000 600000000 0
0 0 250000000 200000000 0 500000000
500000000 400000000 250000000 700000000 250000000 200000000
0 1000000000 0 500000000 250000000 700000000
250000000 200000000 250000000 700000000 0 50000000...

result:

ok 34 acute triangles

Test #35:

score: 0
Accepted
time: 1ms
memory: 3840kb

input:

35

output:

Yes
450000000 200000000 225000000 600000000 225000000 100000000
0 1000000000 0 500000000 225000000 600000000
225000000 100000000 225000000 600000000 0 500000000
0 1000000000 225000000 600000000 250000000 1000000000
450000000 200000000 475000000 600000000 225000000 600000000
500000000 1000000000 2500...

result:

ok 35 acute triangles

Test #36:

score: 0
Accepted
time: 1ms
memory: 3772kb

input:

36

output:

Yes
0 0 500000000 0 400000000 300000000
1000000000 0 900000000 300000000 500000000 0
800000000 600000000 400000000 300000000 900000000 300000000
500000000 0 900000000 300000000 400000000 300000000
0 0 400000000 300000000 0 500000000
800000000 600000000 400000000 800000000 400000000 300000000
0 10000...

result:

ok 36 acute triangles

Test #37:

score: 0
Accepted
time: 1ms
memory: 3840kb

input:

37

output:

Yes
1000000000 0 750000000 200000000 600000000 0
0 0 250000000 200000000 0 500000000
500000000 400000000 250000000 700000000 250000000 200000000
0 1000000000 0 500000000 250000000 700000000
250000000 200000000 250000000 700000000 0 500000000
1000000000 0 750000000 200000000 1000000000 500000000
5000...

result:

ok 37 acute triangles

Test #38:

score: 0
Accepted
time: 0ms
memory: 4020kb

input:

38

output:

Yes
0 1000000000 0 500000000 225000000 600000000
225000000 100000000 225000000 600000000 0 500000000
0 1000000000 225000000 600000000 250000000 1000000000
450000000 200000000 475000000 600000000 225000000 600000000
500000000 1000000000 250000000 1000000000 475000000 600000000
225000000 600000000 475...

result:

ok 38 acute triangles

Test #39:

score: 0
Accepted
time: 0ms
memory: 3796kb

input:

39

output:

Yes
1000000000 0 900000000 300000000 500000000 0
800000000 600000000 400000000 300000000 900000000 300000000
500000000 0 900000000 300000000 400000000 300000000
0 0 400000000 300000000 0 500000000
800000000 600000000 400000000 800000000 400000000 300000000
0 1000000000 0 500000000 400000000 80000000...

result:

ok 39 acute triangles

Test #40:

score: 0
Accepted
time: 1ms
memory: 3788kb

input:

40

output:

Yes
0 0 250000000 200000000 0 500000000
500000000 400000000 250000000 700000000 250000000 200000000
0 1000000000 0 500000000 250000000 700000000
250000000 200000000 250000000 700000000 0 500000000
1000000000 0 750000000 200000000 1000000000 500000000
500000000 400000000 750000000 700000000 750000000...

result:

ok 40 acute triangles

Test #41:

score: 0
Accepted
time: 1ms
memory: 3744kb

input:

41

output:

Yes
225000000 100000000 225000000 600000000 0 500000000
0 1000000000 225000000 600000000 250000000 1000000000
450000000 200000000 475000000 600000000 225000000 600000000
500000000 1000000000 250000000 1000000000 475000000 600000000
225000000 600000000 475000000 600000000 250000000 1000000000
5000000...

result:

ok 41 acute triangles

Test #42:

score: 0
Accepted
time: 1ms
memory: 4064kb

input:

42

output:

Yes
800000000 600000000 400000000 300000000 900000000 300000000
500000000 0 900000000 300000000 400000000 300000000
0 0 400000000 300000000 0 500000000
800000000 600000000 400000000 800000000 400000000 300000000
0 1000000000 0 500000000 400000000 800000000
400000000 300000000 400000000 800000000 0 5...

result:

ok 42 acute triangles

Test #43:

score: 0
Accepted
time: 0ms
memory: 4036kb

input:

43

output:

Yes
500000000 400000000 250000000 700000000 250000000 200000000
0 1000000000 0 500000000 250000000 700000000
250000000 200000000 250000000 700000000 0 500000000
1000000000 0 750000000 200000000 1000000000 500000000
500000000 400000000 750000000 700000000 750000000 200000000
1000000000 1000000000 100...

result:

ok 43 acute triangles

Test #44:

score: 0
Accepted
time: 1ms
memory: 3784kb

input:

44

output:

Yes
0 1000000000 225000000 600000000 250000000 1000000000
450000000 200000000 475000000 600000000 225000000 600000000
500000000 1000000000 250000000 1000000000 475000000 600000000
225000000 600000000 475000000 600000000 250000000 1000000000
500000000 1000000000 475000000 600000000 525000000 60000000...

result:

ok 44 acute triangles

Test #45:

score: 0
Accepted
time: 1ms
memory: 3844kb

input:

45

output:

Yes
500000000 0 900000000 300000000 400000000 300000000
0 0 400000000 300000000 0 500000000
800000000 600000000 400000000 800000000 400000000 300000000
0 1000000000 0 500000000 400000000 800000000
400000000 300000000 400000000 800000000 0 500000000
0 1000000000 300000000 850000000 325000000 10000000...

result:

ok 45 acute triangles

Test #46:

score: 0
Accepted
time: 1ms
memory: 3780kb

input:

46

output:

Yes
0 1000000000 0 500000000 250000000 700000000
250000000 200000000 250000000 700000000 0 500000000
1000000000 0 750000000 200000000 1000000000 500000000
500000000 400000000 750000000 700000000 750000000 200000000
1000000000 1000000000 1000000000 500000000 750000000 700000000
750000000 200000000 75...

result:

ok 46 acute triangles

Test #47:

score: 0
Accepted
time: 1ms
memory: 3752kb

input:

47

output:

Yes
450000000 200000000 475000000 600000000 225000000 600000000
500000000 1000000000 250000000 1000000000 475000000 600000000
225000000 600000000 475000000 600000000 250000000 1000000000
500000000 1000000000 475000000 600000000 525000000 600000000
450000000 200000000 500000000 200000000 475000000 60...

result:

ok 47 acute triangles

Test #48:

score: 0
Accepted
time: 1ms
memory: 3788kb

input:

48

output:

Yes
0 0 400000000 300000000 0 500000000
800000000 600000000 400000000 800000000 400000000 300000000
0 1000000000 0 500000000 400000000 800000000
400000000 300000000 400000000 800000000 0 500000000
0 1000000000 300000000 850000000 325000000 1000000000
600000000 700000000 625000000 850000000 300000000...

result:

ok 48 acute triangles

Test #49:

score: 0
Accepted
time: 0ms
memory: 3788kb

input:

49

output:

Yes
250000000 200000000 250000000 700000000 0 500000000
1000000000 0 750000000 200000000 1000000000 500000000
500000000 400000000 750000000 700000000 750000000 200000000
1000000000 1000000000 1000000000 500000000 750000000 700000000
750000000 200000000 750000000 700000000 1000000000 500000000
0 1000...

result:

ok 49 acute triangles

Test #50:

score: 0
Accepted
time: 1ms
memory: 3736kb

input:

50

output:

Yes
500000000 1000000000 250000000 1000000000 475000000 600000000
225000000 600000000 475000000 600000000 250000000 1000000000
500000000 1000000000 475000000 600000000 525000000 600000000
450000000 200000000 500000000 200000000 475000000 600000000
550000000 200000000 525000000 600000000 500000000 20...

result:

ok 50 acute triangles