QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#188408#7184. Transport PlusesPHarrWA 0ms4048kbC++202.1kb2023-09-25 20:08:292023-09-25 20:08:30

Judging History

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

  • [2023-09-25 20:08:30]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:4048kb
  • [2023-09-25 20:08:29]
  • 提交

answer

#include<bits/stdc++.h>

using namespace std;

//#define int long long

constexpr int inf = 1E9;

using vi = vector<int>;


int32_t main() {
    ios::sync_with_stdio(false), cin.tie(nullptr);

    int n, t;
    cin >> n >> t;

    int xh, yh;
    cin >> xh >> yh;

    int xe, ye;
    cin >> xe >> ye;

    vi x(n), y(n);

    for (int i = 0; i < n; i++)
        cin >> x[i] >> y[i];

    double ans = sqrt((xh - xe) * (xh - xe) + (yh - ye) * (yh - ye));
    vector<array<int, 3>> path;
    path.push_back({0, xe, ye});

    for (int i = 0, cost; i < n; i++)
        for (int j = 0; j < n; j++) {
            if (i == j) {
                cost = min(abs(xh - x[i]), abs(yh - y[i])) + t + min(abs(xe - x[i]), abs(ye - y[i]));
                if (cost >= ans) continue;

                ans = cost, path.clear();
                if (abs(xh - x[i]) < abs(yh - y[i]))
                    path.push_back({0, x[i], yh});
                else
                    path.push_back({0, xh, y[i]});
                if (abs(xe - x[i]) < abs(ye - y[i]))
                    path.push_back({i + 1, x[i], ye});
                else
                    path.push_back({i + 1, xe, y[i]});
                path.push_back({0, xe, ye});
            } else {
                cost = min(abs(xh - x[i]), abs(yh - y[i])) + t + t + min(abs(xe - x[j]), abs(ye - y[j]));
                if (cost >= ans) continue;
                ans = cost, path.clear();
                if (abs(xh - x[i]) < abs(yh - y[i]))
                    path.push_back({0, x[i], yh});
                else
                    path.push_back({0, xh, y[i]});
                path.push_back({i + 1, x[i], y[i]});
                if (abs(xe - x[j]) < abs(ye - y[j]))
                    path.push_back({j + 1, x[j], ye});
                else
                    path.push_back({j + 1, xe, y[j]});
                path.push_back({0, xe, ye});
            }
        }
    cout << fixed << setprecision(10) << ans << "\n" << path.size() << "\n";
    for (auto [a, b, c]: path)
        cout << a << " " << b << " " << c << "\n";
    return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 3812kb

input:

1 2
1 1
5 3
6 2

output:

4.0000000000
3
0 1 2
1 5 2
0 5 3

result:

ok correct

Test #2:

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

input:

2 1
1 1
6 1
1 3
6 3

output:

2.0000000000
4
0 1 1
1 1 3
2 6 1
0 6 1

result:

ok correct

Test #3:

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

input:

0 0
1 1
1 1

output:

0.0000000000
1
0 1 1

result:

ok correct

Test #4:

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

input:

0 0
100 100
0 0

output:

141.4213562373
1
0 0 0

result:

ok correct

Test #5:

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

input:

1 0
100 100
0 0
100 100

output:

100.0000000000
3
0 100 100
1 0 100
0 0 0

result:

ok correct

Test #6:

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

input:

1 0
100 100
0 0
100 0

output:

0.0000000000
3
0 100 100
1 0 0
0 0 0

result:

ok correct

Test #7:

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

input:

1 0
100 100
0 0
0 100

output:

0.0000000000
3
0 100 100
1 0 0
0 0 0

result:

ok correct

Test #8:

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

input:

1 100
50 50
0 0
50 50

output:

70.7106781187
1
0 0 0

result:

ok correct

Test #9:

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

input:

1 100
50 50
0 0
0 50

output:

70.7106781187
1
0 0 0

result:

ok correct

Test #10:

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

input:

1 100
50 50
0 0
51 51

output:

70.7106781187
1
0 0 0

result:

ok correct

Test #11:

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

input:

1 100
50 50
0 0
2 53

output:

70.7106781187
1
0 0 0

result:

ok correct

Test #12:

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

input:

1 100
0 0
100 100
50 50

output:

141.4213562373
1
0 100 100

result:

ok correct

Test #13:

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

input:

1 33
0 0
100 100
50 50

output:

133.0000000000
3
0 0 50
1 100 50
0 100 100

result:

ok correct

Test #14:

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

input:

1 12
100 0
11 90
0 100

output:

122.0000000000
3
0 100 100
1 11 100
0 11 90

result:

ok correct

Test #15:

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

input:

1 12
100 0
10 89
0 100

output:

122.0000000000
3
0 100 100
1 0 89
0 10 89

result:

ok correct

Test #16:

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

input:

2 1
2 1
5 1
1 3
6 3

output:

3.0000000000
1
0 5 1

result:

ok correct

Test #17:

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

input:

2 2
2 1
5 1
1 3
6 3

output:

3.0000000000
1
0 5 1

result:

ok correct

Test #18:

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

input:

1 2
1 1
5 3
7 2

output:

4.0000000000
3
0 1 2
1 5 2
0 5 3

result:

ok correct

Test #19:

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

input:

1 2
1 1
5 4
6 2

output:

4.0000000000
3
0 1 2
1 6 4
0 5 4

result:

ok correct

Test #20:

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

input:

12 1
77 80
76 78
77 81
76 79
77 78
75 80
75 79
76 80
78 81
77 81
76 81
76 80
77 79
76 79

output:

1.0000000000
3
0 77 80
3 76 78
0 76 78

result:

ok correct

Test #21:

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

input:

5 1
40 69
37 71
37 69
36 71
38 70
40 72
40 71

output:

1.0000000000
3
0 40 69
1 37 71
0 37 71

result:

ok correct

Test #22:

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

input:

8 1
84 27
86 32
85 31
83 27
86 27
85 28
83 27
83 32
85 31
87 29

output:

1.0000000000
3
0 84 27
3 86 32
0 86 32

result:

ok correct

Test #23:

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

input:

11 1
95 30
99 36
96 33
95 36
94 30
98 33
98 36
97 31
99 33
99 31
98 35
95 36
100 32

output:

1.0000000000
3
0 95 30
2 99 36
0 99 36

result:

ok correct

Test #24:

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

input:

4 1
19 37
18 32
18 36
21 36
19 33
22 34

output:

2.0000000000
3
0 19 36
1 18 32
0 18 32

result:

ok correct

Test #25:

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

input:

7 1
49 6
48 8
46 3
49 9
45 6
43 3
49 8
43 8
48 2

output:

1.0000000000
3
0 49 6
5 48 8
0 48 8

result:

ok correct

Test #26:

score: -100
Wrong Answer
time: 0ms
memory: 3808kb

input:

10 0
75 31
74 34
77 36
79 34
74 37
75 32
76 31
81 37
79 34
77 28
80 36
80 28

output:

0.0000000000
4
0 75 31
4 75 32
2 74 34
0 74 34

result:

wrong answer step 3: source (75.000000, 32.000000) not on plus (79.000000, 34.000000)