编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#80727 #1152. 连连看 Accepted 100 2813 ms 8428 K C++ 11 (Clang) / 2.9 K 15291309895 2022-08-02 12:05:30
显示原始代码
#include <iostream>
#include <algorithm>
#include <queue>
typedef long long ll;
using namespace std;
const int MAX = 1e5 + 7;

struct num {
    ll j, x, y, dis;
} number[MAX];

bool cmpx(num x, num y) { return x.x < y.x; }
bool cmpy(num x, num y) { return x.y < y.y; }
bool cmpd(num x, num y) { return x.dis > y.dis; }
ll x, y, xx[MAX], yy[MAX], n;
queue<num> xp, xn, a, b, c, d;
int main() {
    cin >> n;
    for (ll i = 0; i < n; i++) {
        cin >> x >> y;
        number[i].x = x + y;
        number[i].y = x - y;
        number[i].j = i + 1;
        xx[i] = x + y;
        yy[i] = x - y;
    }
    if (n == 1)
        cout << 0;
    else {
        cout << n / 2 << endl;
        sort(xx, xx + n);
        sort(yy, yy + n);
        if (n % 2) {
            ll x_0 = xx[n / 2], y_0 = yy[n / 2];
            for (ll i = 0; i < n; i++) number[i].dis = abs(x_0 - number[i].x) + abs(y_0 - number[i].y);
            sort(number, number + n, cmpd);
            n--;
        }
        sort(number, number + n, cmpy);
        ll y_0 = number[n / 2 - 1].y + number[n / 2].y;
        sort(number, number + n, cmpx);

        for (ll i = 0; i < n; i++) {
            if (i >= n / 2) {
                if (2 * number[i].y > y_0)
                    a.push(number[i]);
                else if (2 * number[i].y < y_0)
                    b.push(number[i]);
                else
                    xp.push(number[i]);
            } else {
                if (2 * number[i].y > y_0)
                    c.push(number[i]);
                else if (2 * number[i].y < y_0)
                    d.push(number[i]);
                else
                    xn.push(number[i]);
            }
        }
        unsigned long long si;
        si = min(a.size(), d.size());
        for (ll i = 0; i < si; i++) {
            cout << a.front().j << " " << d.front().j << endl;
            a.pop();
            d.pop();
        }
        si = min(b.size(), c.size());
        for (ll i = 0; i < si; i++) {
            cout << b.front().j << " " << c.front().j << endl;
            b.pop();
            c.pop();
        }
        while (a.size()) {
            cout << a.front().j << " " << xn.front().j << endl;
            a.pop();
            xn.pop();
        }
        while (b.size()) {
            cout << b.front().j << " " << xn.front().j << endl;
            b.pop();
            xn.pop();
        }
        while (c.size()) {
            cout << c.front().j << " " << xp.front().j << endl;
            c.pop();
            xp.pop();
        }
        while (d.size()) {
            cout << d.front().j << " " << xp.front().j << endl;
            d.pop();
            xp.pop();
        }
        while (xn.size()) {
            cout << xp.front().j << " " << xn.front().j << endl;
            xp.pop();
            xn.pop();
        }
    }
    return 0;
}
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:153 ms
内存:8304 KiB

输入文件(input1.in

99994
39904 35083
46820 36679
18613 3814
6474 19631
37764 36525
18319 33414
45300 26489
21133 11529

<1155515 bytes omitted>

答案文件(input1.out

1665399942

用户输出

49997
27796 24609
59892 10263
13843 45435
32646 77940
32540 72660
51135 88743
13832 665
26156 55100
23021 48629
6965 12798
33743
<588736 bytes omitted>

系统信息

Exited with return code 0
测试点 #2
Accepted
得分:100
用时:141 ms
内存:8272 KiB

输入文件(input2.in

99966
29572 24605
33552 8402
18093 9640
547 31444
251 3309
43619 22874
32618 14747
3018 19766
37882 
<1155228 bytes omitted>

答案文件(input2.out

1664919648

用户输出

49983
13112 82478
60171 62451
63321 40241
78472 44908
1206 98072
28818 72834
82372 17966
61274 79618
25379 85633
69525 75675
157
<588568 bytes omitted>

系统信息

Exited with return code 0
测试点 #3
Accepted
得分:100
用时:148 ms
内存:8304 KiB

输入文件(input3.in

99959
24963 15592
20533 22230
22960 10397
32438 32270
16368 45627
25843 147
28835 6570
37998 16798
1
<1155287 bytes omitted>

答案文件(input3.out

1661963157

用户输出

49979
94327 87245
67467 20142
83875 73562
63532 86106
11208 43317
738 49309
77493 62891
91502 62882
60061 61769
42703 13703
3219
<588520 bytes omitted>

系统信息

Exited with return code 0
测试点 #4
Accepted
得分:100
用时:166 ms
内存:8376 KiB

输入文件(input4.in

99950
2417 45567
19300 44813
23263 44027
33863 2702
39461 4555
42612 32590
15374 27421
31106 10493
4
<1155004 bytes omitted>

答案文件(input4.out

1662916373

用户输出

49975
40149 83305
78018 60794
7064 92164
67266 63627
91301 91744
65810 71223
94287 66451
16536 35430
37490 52426
51841 20419
503
<588472 bytes omitted>

系统信息

Exited with return code 0
测试点 #5
Accepted
得分:100
用时:153 ms
内存:8368 KiB

输入文件(input5.in

99972
45280 44508
29577 24171
8151 8714
7100 44734
49861 28412
31199 14196
17156 34102
32122 48695
4
<1155310 bytes omitted>

答案文件(input5.out

1664148272

用户输出

49986
66534 10557
61296 33291
52170 77243
21354 68613
67466 10660
53713 84933
30854 41205
97441 66778
81635 64098
25096 76924
99
<588604 bytes omitted>

系统信息

Exited with return code 0
测试点 #6
Accepted
得分:100
用时:141 ms
内存:8360 KiB

输入文件(input7.in

99994
22203 12731
48860 13276
9330 45678
45445 29249
15122 11965
11386 19038
21223 30977
15157 31632
<1155538 bytes omitted>

答案文件(input7.out

1665321412

用户输出

49997
81373 17982
32816 50513
14456 80209
43081 96722
71409 4394
94164 41
35880 96351
42572 39246
47258 21574
40196 9306
22322 7
<588736 bytes omitted>

系统信息

Exited with return code 0
测试点 #7
Accepted
得分:100
用时:101 ms
内存:8296 KiB

输入文件(input8.in

99994
8 4
10 6
4 4
6 9
7 5
9 5
10 8
8 3
2 7
2 10
10 2
2 10
9 9
6 7
5 4
8 4
3 10
10 8
7 5
8 5
10 8
8 
<419780 bytes omitted>

答案文件(input8.out

330146

用户输出

49997
67336 58862
55408 49113
67260 84979
67266 7412
57352 70463
55351 71785
55242 48584
86189 42956
54828 7397
54781 52341
5473
<588736 bytes omitted>

系统信息

Exited with return code 0
测试点 #8
Accepted
得分:100
用时:110 ms
内存:8280 KiB

输入文件(input9.in

99969
4 8
8 6
2 6
9 10
4 10
10 4
1 5
9 9
3 9
9 2
7 3
1 10
10 9
9 3
8 4
9 6
10 5
3 7
9 4
6 6
3 10
10 
<419576 bytes omitted>

答案文件(input9.out

329492

用户输出

49984
18799 11285
45100 57940
55923 83323
83058 38891
47044 9226
46263 26904
32150 783
53628 11334
2940 1359
450 57998
66124 413
<588581 bytes omitted>

系统信息

Exited with return code 0
测试点 #9
Accepted
得分:100
用时:108 ms
内存:8368 KiB

输入文件(input10.in

99987
5 10
6 10
7 6
10 4
2 10
10 5
10 5
2 8
9 4
1 9
4 9
8 4
9 7
5 7
6 4
7 8
5 6
1 5
5 7
5 6
4 8
9 3

<419631 bytes omitted>

答案文件(input10.out

329440

用户输出

49993
65363 5694
88181 23323
45268 98018
65346 55555
45275 34937
65524 1849
44922 13275
53755 54175
18512 36795
6106 31645
70531
<588688 bytes omitted>

系统信息

Exited with return code 0
测试点 #10
Accepted
得分:100
用时:108 ms
内存:8336 KiB

输入文件(input11.in

99987
8 8
6 10
9 8
6 7
7 4
3 8
1 7
5 8
5 7
8 8
9 3
1 5
3 10
10 8
1 5
3 7
10 4
9 2
4 1
7 6
2 1
1 10
4
<419934 bytes omitted>

答案文件(input11.out

330047

用户输出

49993
15579 84075
33438 21322
98602 51422
98336 7360
28808 84773
79899 21256
48437 62114
94925 20041
27846 82241
99271 88257
997
<588688 bytes omitted>

系统信息

Exited with return code 0
测试点 #11
Accepted
得分:100
用时:105 ms
内存:8368 KiB

输入文件(input12.in

99991
1 9
6 6
8 9
8 9
10 10
3 7
8 10
4 5
3 6
6 10
3 8
7 7
1 6
7 1
9 2
3 1
6 7
7 10
5 4
7 3
8 9
3 3
1
<419968 bytes omitted>

答案文件(input12.out

330232

用户输出

49995
10195 74327
28576 66701
67365 94453
29587 10267
45760 83426
17534 92518
82422 67891
25155 56697
20540 95317
81780 10069
73
<588712 bytes omitted>

系统信息

Exited with return code 0
测试点 #12
Accepted
得分:100
用时:109 ms
内存:8316 KiB

输入文件(input13.in

99981
2 5
7 10
9 9
9 8
3 10
10 1
5 4
9 10
7 7
9 2
3 3
5 8
10 9
6 10
3 4
1 6
2 1
8 7
9 1
2 9
1 1
3 10
<419894 bytes omitted>

答案文件(input13.out

329860

用户输出

49990
54163 51525
71382 15640
1264 56838
43059 70062
25949 43568
77072 96625
28963 1369
70968 10920
9816 42653
39427 49696
912 1
<588652 bytes omitted>

系统信息

Exited with return code 0
测试点 #13
Accepted
得分:100
用时:104 ms
内存:8280 KiB

输入文件(input14.in

99970
2 6
8 5
4 5
4 7
6 9
1 8
2 7
6 6
3 8
1 3
5 5
10 8
10 2
3 9
4 4
2 6
1 9
9 8
7 8
1 7
5 6
6 5
10 3
<419547 bytes omitted>

答案文件(input14.out

329442

用户输出

49985
66580 8219
66553 48453
77212 7546
64666 48144
64648 8199
68551 48578
66558 92885
66238 19877
76804 59465
63750 19710
77337
<588592 bytes omitted>

系统信息

Exited with return code 0
测试点 #14
Accepted
得分:100
用时:168 ms
内存:8280 KiB

输入文件(input15.in

99951
43016666 705054189
23890816 191954409
48367680 178083192
65698935 509772667
809449080 63876393
<1972731 bytes omitted>

答案文件(input15.out

33839316800310

用户输出

49975
64155 2134
24046 58697
6703 31672
97957 93579
54558 93669
59000 34546
48229 39534
68758 38740
91107 67919
60108 58887
8281
<588473 bytes omitted>

系统信息

Exited with return code 0
测试点 #15
Accepted
得分:100
用时:154 ms
内存:8368 KiB

输入文件(input16.in

99950
390196982 16217026
756299460 557589375
845307426 215064985
403301484 72900781
989173256 503715
<1973044 bytes omitted>

答案文件(input16.out

33893190316304

用户输出

49975
89492 2088
79102 63086
90931 33479
43456 10981
32307 84332
80534 69694
88745 67684
96874 70069
1927 39142
38576 79551
4540
<588472 bytes omitted>

系统信息

Exited with return code 0
测试点 #16
Accepted
得分:100
用时:157 ms
内存:8280 KiB

输入文件(input17.in

99966
309713742 103345138
912956589 605640153
759597371 959523157
958180894 12282372
124979541 33724
<1973228 bytes omitted>

答案文件(input17.out

33869086670134

用户输出

49983
57160 91668
15859 26180
30920 30424
59399 8704
34305 29486
93652 31305
95892 52894
37697 91627
85541 56153
30874 28256
771
<588568 bytes omitted>

系统信息

Exited with return code 0
测试点 #17
Accepted
得分:100
用时:179 ms
内存:8348 KiB

输入文件(input18.in

99989
662308788 188157881
945161135 936031796
224331765 646572957
176241418 73020933
141324820 14925
<1973587 bytes omitted>

答案文件(input18.out

33895043667584

用户输出

49994
94140 86562
25501 43778
97738 59447
5115 37678
85952 58693
68888 40092
65183 13033
37766 88293
98795 10117
38564 68676
949
<588700 bytes omitted>

系统信息

Exited with return code 0
测试点 #18
Accepted
得分:100
用时:172 ms
内存:8268 KiB

输入文件(input19.in

99973
154453232 656240272
715155228 848233937
852480696 275617197
561544202 123073069
472873249 7570
<1973611 bytes omitted>

答案文件(input19.out

33855972714822

用户输出

49986
52596 60647
73184 83352
2938 72770
98469 64842
84883 99714
34952 42583
28482 46269
38512 55242
11502 28630
63079 71869
360
<588604 bytes omitted>

系统信息

Exited with return code 0
测试点 #19
Accepted
得分:100
用时:170 ms
内存:8428 KiB

输入文件(input20.in

99963
330145838 658516321
110794903 347274671
457221490 32851628
825966653 737106317
215914215 91143
<1973595 bytes omitted>

答案文件(input20.out

33750931421773

用户输出

49981
13425 98979
9718 27305
653 18287
82578 71261
97964 73671
42411 93108
45582 48229
72249 12785
23489 10437
87810 59865
11254
<588544 bytes omitted>

系统信息

Exited with return code 0
测试点 #20
Accepted
得分:100
用时:166 ms
内存:8304 KiB

输入文件(input21.in

99955
645861926 798882887
204604371 64809073
832321434 183260368
540647278 28314156
852540009 437805
<1973031 bytes omitted>

答案文件(input21.out

33814666330789

用户输出

49977
65172 24950
32355 88356
89616 17942
88830 75390
28523 59431
23224 63936
3739 33587
81573 88806
88347 37332
94594 42383
704
<588496 bytes omitted>

系统信息

Exited with return code 0