QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#468951#7184. Transport PluseslennercpWA 1ms3968kbC++203.7kb2024-07-09 06:34:332024-07-09 06:34:33

Judging History

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

  • [2024-07-09 06:34:33]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3968kb
  • [2024-07-09 06:34:33]
  • 提交

answer

#include "bits/stdc++.h"
using namespace std;
typedef long long ll;

#define rep(i, begin, end) for(int i = begin; i < end; i++)
#define all(x) x.begin(),x.end()
#define sz(x) (int)x.size()
#define sq(x) (x)*(x)

const int N = 112345;
const int inf = 1e9+7;

void solvetask()
{
    int n, t;
    cin >> n >> t;

    array<int,2> ini, fim;
    cin >> ini[0] >> ini[1];
    cin >> fim[0] >> fim[1];

    vector<array<int,2>> plus(n);
    rep(i,0,n) cin >> plus[i][0] >> plus[i][1];
    int ind_mini = 0;

//  cout << "M " << mini << '\n';
    int res = 1e9;
    int oto = -1;
    rep(i,0,n){
        int dist_ini = min(abs(ini[0] - plus[i][0]), abs(ini[1] - plus[i][1]));
        int dist_fim = min(abs(fim[0] - plus[i][0]), abs(fim[1] - plus[i][1]));
        // cout << "INI " << dist_ini << " FIM " << dist_fim << " T " << t<< '\n';
        if(dist_ini + t + dist_fim < res){
            ind_mini = i;
            oto = -1;
            res = dist_ini + t + dist_fim;
        }
        rep(j, i+1, n){
            dist_fim = min(abs(fim[0] - plus[j][0]), abs(fim[1] - plus[j][1]));
            if(dist_ini + dist_fim + 2*t < res){
                oto = i;
                ind_mini = j;
                res = dist_ini + dist_fim + 2*t;
            }

        }
    }

    long double aux = sqrtl(sq(ini[0]-fim[0]) + sq(ini[1]-fim[1]));

    cout << fixed << setprecision(6);
    // cout << aux << '\n';
    if((long double)res > aux){
        cout << aux << '\n';
        cout << 1 << '\n';
        cout << 0 << " " << fim[0] << " " << fim[1] << '\n';
        return;
    }

    cout << (long double)res << '\n';
    if(oto == -1){
        bool cond1 = fim[0] == plus[ind_mini][0] || fim[1] == plus[ind_mini][1];
        bool cond2 = ini[0] == plus[ind_mini][0] || ini[1] == plus[ind_mini][1];
        cout << 3 - cond1 - cond2 << '\n';
        if(!cond2){
            if(abs(ini[0] - plus[ind_mini][0]) < abs(ini[1] - plus[ind_mini][1])){
                cout << 0 << " " << plus[ind_mini][0] << " " << ini[1] << '\n';
            }else
                cout << 0 << " "<< ini[0] << " " << plus[ind_mini][1] << '\n';
        }

        if(abs(fim[0] - plus[ind_mini][0]) < abs(fim[1] - plus[ind_mini][1])){
            cout << ind_mini + 1 << " " << plus[ind_mini][0] << " " << fim[1] << '\n';
        }else
            cout << ind_mini + 1 << " "<< fim[0] << " " << plus[ind_mini][1] << '\n';

        if(!cond1)
        cout << 0 << " " << fim[0] << " " << fim[1] << '\n';
    }else{
        bool cond1 = fim[0] == plus[ind_mini][0] || fim[1] == plus[ind_mini][1];
        bool cond2 = ini[0] == plus[oto][0] || ini[1] == plus[oto][1];
        // cout << ini[0] << " " << plus[oto][0] << " " <<  ini[1] << " " << plus[oto][1] << '\n';
        cout << 4 - cond1 - cond2 << '\n';
        if(!cond2)
            if(abs(ini[0] - plus[oto][0]) < abs(ini[1] - plus[oto][1])){
                cout << 0 << " " << plus[oto][0] << " " << ini[1] << '\n';
            }else
                cout << 0 << " "<< ini[0] << " " << plus[oto][1] << '\n';

        cout << oto +1 << " " << plus[oto][0] << " " << plus[ind_mini][1] << '\n'; 

        if(abs(fim[0] - plus[ind_mini][0]) < abs(fim[1] - plus[ind_mini][1])){
            cout << ind_mini + 1 << " " << plus[ind_mini][0] << " " << fim[1] << '\n';
        }else
            cout << ind_mini + 1 << " "<< fim[0] << " " << plus[ind_mini][1] << '\n';

        if(!cond1)
        cout << 0 << " " << fim[0] << " " << fim[1] << '\n';
    }

}

int main()
{
    cin.tie(0)->sync_with_stdio(0);
    int t = 1;
    // cin >> t;
    while (t--)
        solvetask();
        // cout << (solvetask() ? "Yes" : "No") << '\n';
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

1 2
1 1
5 3
6 2

output:

4.000000
3
0 1 2
1 5 2
0 5 3

result:

ok correct

Test #2:

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

input:

2 1
1 1
6 1
1 3
6 3

output:

2.000000
2
1 1 3
2 6 1

result:

ok correct

Test #3:

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

input:

0 0
1 1
1 1

output:

0.000000
1
0 1 1

result:

ok correct

Test #4:

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

input:

0 0
100 100
0 0

output:

141.421356
1
0 0 0

result:

ok correct

Test #5:

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

input:

1 0
100 100
0 0
100 100

output:

100.000000
2
1 0 100
0 0 0

result:

ok correct

Test #6:

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

input:

1 0
100 100
0 0
100 0

output:

0.000000
1
1 0 0

result:

ok correct

Test #7:

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

input:

1 0
100 100
0 0
0 100

output:

0.000000
1
1 0 0

result:

ok correct

Test #8:

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

input:

1 100
50 50
0 0
50 50

output:

70.710678
1
0 0 0

result:

ok correct

Test #9:

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

input:

1 100
50 50
0 0
0 50

output:

70.710678
1
0 0 0

result:

ok correct

Test #10:

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

input:

1 100
50 50
0 0
51 51

output:

70.710678
1
0 0 0

result:

ok correct

Test #11:

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

input:

1 100
50 50
0 0
2 53

output:

70.710678
1
0 0 0

result:

ok correct

Test #12:

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

input:

1 100
0 0
100 100
50 50

output:

141.421356
1
0 100 100

result:

ok correct

Test #13:

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

input:

1 33
0 0
100 100
50 50

output:

133.000000
3
0 0 50
1 100 50
0 100 100

result:

ok correct

Test #14:

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

input:

1 12
100 0
11 90
0 100

output:

122.000000
3
0 100 100
1 11 100
0 11 90

result:

ok correct

Test #15:

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

input:

1 12
100 0
10 89
0 100

output:

122.000000
3
0 100 100
1 0 89
0 10 89

result:

ok correct

Test #16:

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

input:

2 1
2 1
5 1
1 3
6 3

output:

3.000000
1
0 5 1

result:

ok correct

Test #17:

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

input:

2 2
2 1
5 1
1 3
6 3

output:

3.000000
1
0 5 1

result:

ok correct

Test #18:

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

input:

1 2
1 1
5 3
7 2

output:

4.000000
3
0 1 2
1 5 2
0 5 3

result:

ok correct

Test #19:

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

input:

1 2
1 1
5 4
6 2

output:

4.000000
3
0 1 2
1 6 4
0 5 4

result:

ok correct

Test #20:

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

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.000000
1
3 76 78

result:

ok correct

Test #21:

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

input:

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

output:

1.000000
1
1 37 71

result:

ok correct

Test #22:

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

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.000000
1
3 86 32

result:

ok correct

Test #23:

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

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.000000
1
2 99 36

result:

ok correct

Test #24:

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

input:

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

output:

2.000000
2
0 19 36
1 18 32

result:

ok correct

Test #25:

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

input:

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

output:

1.000000
1
5 48 8

result:

ok correct

Test #26:

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

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.000000
2
4 75 34
7 74 34

result:

ok correct

Test #27:

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

input:

3 3
74 19
75 15
70 17
74 10
75 17

output:

4.000000
2
2 74 15
0 75 15

result:

ok correct

Test #28:

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

input:

6 1
38 6
35 3
32 13
34 4
37 4
28 10
37 12
35 14

output:

3.000000
3
0 37 6
3 35 4
0 35 3

result:

ok correct

Test #29:

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

input:

9 2
91 54
90 52
86 61
90 59
90 63
97 54
93 60
96 56
85 63
89 58
95 59

output:

2.236068
1
0 90 52

result:

ok correct

Test #30:

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

input:

3 1
28 85
24 87
23 94
29 87
23 86

output:

2.000000
2
0 29 85
2 24 87

result:

ok correct

Test #31:

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

input:

18 1
56 70
54 77
56 72
52 71
54 69
53 67
52 72
55 73
51 71
59 74
49 77
58 80
59 72
60 77
50 70
56 71
61 71
63 79
60 76
54 69

output:

2.000000
2
1 56 69
3 54 77

result:

ok correct

Test #32:

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

input:

28 1
70 72
62 63
78 73
80 64
74 74
55 60
77 55
58 61
64 57
68 65
75 73
64 75
76 60
77 58
60 65
64 67
79 66
58 78
64 58
66 55
62 62
55 57
65 55
73 76
58 70
76 56
66 68
77 76
64 55
55 65

output:

3.000000
3
0 70 73
1 78 62
19 62 63

result:

ok correct

Test #33:

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

input:

40 1
72 56
63 68
70 58
70 63
55 55
52 76
83 52
84 86
49 66
63 76
57 65
82 77
50 78
82 76
78 53
74 58
66 65
80 71
57 77
54 71
77 86
67 88
71 71
80 74
65 70
48 66
80 86
82 69
72 78
72 73
74 65
84 49
68 75
47 52
75 82
83 55
52 76
49 88
47 48
70 61
45 60
44 49

output:

3.000000
3
0 72 55
3 55 76
8 63 68

result:

wrong answer read 3.000000 but expected 2.000000, error = 1.000000