编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#6124 #1015. 博宝自动机Ⅱ Accepted 100 6480 ms 10084 K C++ 17 / 2.2 K Non_User8 2023-10-12 16:17:15
显示原始代码
#include <bits/stdc++.h>

using namespace std;
using ll = long long;
#define int long long


multiset<int> a;
multiset<int> b;

void add(int x) {
    if (a.empty()) {
        a.insert(x);
        return;
    }

    auto loc = a.lower_bound(x);

    if (loc == a.end()) {
        b.insert(x ^ *(--a.end()));
        a.insert(x);

        return;
    }

    if (loc == a.begin()) {
        b.insert((*a.begin()) ^ x);
        a.insert(x);

        return;
    }

    auto locb = --a.lower_bound(x);

    b.erase(b.find((*loc) ^ (*locb)));

    b.insert(x ^ (*locb));
    b.insert((*loc) ^ x);

    a.insert(x);
}

void del(int x) {
    // cout << x << "\n";
    auto loc = a.find(x);
    if (loc == a.end())
        return;

    if (a.size() == 1) {
        a.erase(loc);
        return;
    }

    if (loc == --a.end()) {
        b.erase(b.find(*(--a.end()) ^ *(----a.end())));
        a.erase(loc);
        return;
    }

    if (loc == a.begin()) {
        b.erase(b.find(*(++a.begin()) ^ x));
        a.erase(loc);

        return;
    }

    auto locb = ++a.find(x);
    auto loca = --a.find(x);

    b.erase(b.find((*locb) ^ x));
    b.erase(b.find(x ^ (*loca)));
    b.insert((*locb) ^ (*loca));

    a.erase(loc);
}

int que() {
    if (a.size() < 2)
        return -1;

    return *b.begin();
}

void solve() {
    int n;
    cin >> n;
    int op;
    int x;

    while (n--) {
        cin >> op;

        if (op <= 2)
            cin >> x;

        if (op == 1)
            add(x);
        if (op == 2)
            del(x);
        if (op == 3)
            cout << que() << "\n";
    }
}

signed main() {
    cin.tie(0);
    cout.tie(0);
    ios_base::sync_with_stdio(false);

    // freopen( "C:\\Users\\14467\\Desktop\\新建文件夹\\10.in" , "r+" , stdin );
    // freopen( "C:\\Users\\14467\\Desktop\\新建文件夹\\10.out" , "w+" , stdout );

    int t = 1;
    while (t--) solve();
}
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:6 ms
内存:320 KiB

输入文件(1.in

50
2 23189
3
1 16602
3
3
3
1 14891
2 4605
2 1834
3
1 2167
2 9329
1 3671
1 21783
3
2 
<252 bytes omitted>

答案文件(1.out

-1
-1
-1
-1
31473
1568
15
15
15
15
15
15
15
15
15

用户输出

-1
-1
-1
-1
31473
1568
15
15
15
15
15
15
15
15
15

系统信息

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

输入文件(2.in

50
3
3
1 32110
3
3
1 16141
2 30762
1 7879
2 2668
1 24291
2 3677
1 28133
3
2 5470
1 28
<235 bytes omitted>

答案文件(2.out

-1
-1
-1
-1
4235
32
32
32
32
32
32
32
32
32
32
32
32
32

用户输出

-1
-1
-1
-1
4235
32
32
32
32
32
32
32
32
32
32
32
32
32

系统信息

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

输入文件(3.in

50
2 19984
2 20880
1 27462
1 31947
1 26721
3
3
1 30812
2 22553
3
3
3
2 21945
1 15774

<243 bytes omitted>

答案文件(3.out

807
807
807
807
807
807
807
456
456
456
456
456
456
456
456
456
456

用户输出

807
807
807
807
807
807
807
456
456
456
456
456
456
456
456
456
456

系统信息

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

输入文件(4.in

50
2 11936
1 9278
2 10026
2 19773
2 31348
1 27800
2 31063
2 14862
2 31427
1 11819
2 30385
<271 bytes omitted>

答案文件(4.out

11
11
11
11
11
11
11
11
11
11
11
11

用户输出

11
11
11
11
11
11
11
11
11
11
11
11

系统信息

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

输入文件(5.in

50
1 1607
2 4290
3
3
2 9328
1 32533
1 14048
3
2 31403
3
1 25754
2 9044
1 29806
3
1 17
<248 bytes omitted>

答案文件(5.out

-1
-1
12455
12455
2939
110
110
110
22
3
3
3
3
3

用户输出

-1
-1
12455
12455
2939
110
110
110
22
3
3
3
3
3

系统信息

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

输入文件(6.in

1000000
3
3
2 30600
1 15201
3
2 9354
2 5634
3
3
3
2 18936
3
2 27612
1 28436
1 29506

<6773164 bytes omitted>

答案文件(6.out

-1
-1
-1
-1
-1
-1
-1
7254
7254
1984
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7

<1000377 bytes omitted>

用户输出

-1
-1
-1
-1
-1
-1
-1
7254
7254
1984
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7

<666862 bytes omitted>

系统信息

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

输入文件(7.in

1000000
2 22092
2 19464
1 16144
1 1950
2 17060
2 11943
2 10360
1 3760
3
3
1 27267
2 593
<6774009 bytes omitted>

答案文件(7.out

2350
2350
903
903
903
378
142
142
142
142
142
142
142
142
142
113
113
17
17
17
1
<1000040 bytes omitted>

用户输出

2350
2350
903
903
903
378
142
142
142
142
142
142
142
142
142
113
113
17
17
17
17
17
17
17
17
17
17
17
17
12
12
12
12
12
12
12
1
<666674 bytes omitted>

系统信息

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

输入文件(8.in

1000000
1 2481
2 6567
3
3
3
2 22971
1 8583
1 6582
1 13794
1 3711
3
3
1 32219
1 15171

<6778939 bytes omitted>

答案文件(8.out

-1
-1
-1
1998
1998
1144
1144
1144
1144
1144
1144
279
279
279
279
279
279
279
279

<997255 bytes omitted>

用户输出

-1
-1
-1
1998
1998
1144
1144
1144
1144
1144
1144
279
279
279
279
279
279
279
279
279
279
279
279
279
279
55
55
55
55
31
31
31
31
<664798 bytes omitted>

系统信息

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

输入文件(9.in

1000000
2 957
1 1243
2 25124
3
3
2 28379
1 23624
2 7481
2 30442
2 26082
2 25292
1 9022

<6772661 bytes omitted>

答案文件(9.out

-1
-1
10213
10213
896
323
323
323
323
323
323
323
323
122
122
122
122
59
19
19
1
<1000401 bytes omitted>

用户输出

-1
-1
10213
10213
896
323
323
323
323
323
323
323
323
122
122
122
122
59
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
1
<666893 bytes omitted>

系统信息

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

输入文件(10.in

1000000
3
2 7202
2 9941
2 10052
3
3
1 31786
2 24989
3
2 19006
1 3551
3
2 27904
1 9607
<6775046 bytes omitted>

答案文件(10.out

-1
-1
-1
-1
29173
6199
6199
944
944
944
944
85
85
85
85
85
85
85
85
85
85
85
8
<999338 bytes omitted>

用户输出

-1
-1
-1
-1
29173
6199
6199
944
944
944
944
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
42
42
42
42
42
42
42
42
42
42
42
42
42

<666203 bytes omitted>

系统信息

Exited with return code 0