QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#874656#2743. SeatsWansur#33 661ms58172kbC++202.1kb2025-01-28 13:04:212025-01-28 13:04:21

Judging History

This is the latest submission verdict.

  • [2025-01-28 13:04:21]
  • Judged
  • Verdict: 33
  • Time: 661ms
  • Memory: 58172kb
  • [2025-01-28 13:04:21]
  • Submitted

answer

#include "seats.h"
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

const int maxn = 1e6 + 12;

pair<int, int> t[maxn * 4];
int p[maxn * 4];
int r[maxn], c[maxn];
int a[maxn];
int n, m;

pair<int, int> operator + (pair<int, int> x, pair<int, int> y) {
    if(x.first == y.first) {
        return {x.first, x.second + y.second};
    }
    return min(x, y);
}

void build(int v, int tl, int tr) {
    if(tl == tr) {
        t[v] = {tl - 1, 1};
        return;
    }
    int mid = (tl + tr) >> 1;
    build(v * 2, tl, mid);
    build(v * 2 + 1, mid + 1, tr);
    t[v] = t[v * 2] + t[v * 2 + 1];
}

void push(int v, int tl, int tr) {
    if(tl == tr) return;
    t[v * 2].first += p[v];
    t[v * 2 + 1].first += p[v];
    p[v * 2] += p[v], p[v * 2 + 1] += p[v];
    p[v] = 0;
}

void upd(int v, int tl, int tr, int l, int r, int x) {
    push(v, tl, tr);
    if(tl > r || l > tr) return;
    if(tl >= l && tr <= r) {
        t[v].first += x;
        p[v] += x;
        return;
    }

    int mid = (tl + tr) >> 1;
    upd(v * 2, tl, mid, l, r, x);
    upd(v * 2 + 1, mid + 1, tr, l, r, x);
    t[v] = t[v * 2] + t[v * 2 + 1];
}

void upd(int i, int x) {
    if(i > 1) {
        upd(1, 1, n, max(a[i], a[i - 1]), n, x);
    }
    if(i < n) {
        upd(1, 1, n, max(a[i], a[i + 1]), n, x);
    }
}

pair<int, int> get(int v, int tl, int tr, int l, int r) {
    if(tl > r || l > tr) return {1e9, 0};
    if(tl >= l && tr <= r) return t[v];
    int mid = (tl + tr) >> 1;
    return get(v * 2, tl, mid, l, r) + get(v * 2 + 1, mid + 1, tr, l, r);
}

void give_initial_chart(int H, int W, std::vector<int> R, std::vector<int> C) {
    n = W;
    for(int i = 1; i <= n; i++) {
        r[i] = C[i - 1] + 1;
        a[r[i]] = i;
    }
    build(1, 1, n);
    for(int i = 1; i < n; i++) {
        upd(1, 1, n, max(a[i], a[i + 1]), n, -1);
    }
}

int swap_seats(int i, int j) {
    i++, j++;
    if(i > j) swap(i, j);

    upd(r[i], 1), upd(r[j], 1);
    swap(r[i], r[j]);
    a[r[i]] = i;
    a[r[j]] = j;
    upd(r[i], -1), upd(r[j], -1);

    return t[1].second;
}

详细

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 0
Wrong Answer
time: 1ms
memory: 7980kb

input:

3 3 5000
2 2
1 2
0 2
0 1
0 0
2 1
1 1
1 0
2 0
6 0
5 7
6 4
3 2
0 2
0 2
7 0
7 0
3 2
3 6
0 2
3 5
2 6
2 0
8 6
0 6
1 3
1 8
8 1
4 2
1 8
2 5
1 3
7 0
6 5
6 3
2 8
8 2
1 3
8 5
6 3
8 0
4 8
6 8
7 8
4 3
3 6
5 0
8 5
1 7
2 6
1 2
5 4
5 1
7 6
8 4
7 3
6 8
8 3
0 3
6 3
0 8
0 5
7 2
0 3
7 5
4 5
3 5
1 0
0 8
7 0
2 5
5 8
7 4...

output:

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
...

result:

wrong answer 1st numbers differ - expected: '4', found: '1'

Subtask #2:

score: 0
Skipped

Dependency #1:

0%

Subtask #3:

score: 0
Skipped

Dependency #1:

0%

Subtask #4:

score: 0
Wrong Answer

Test #33:

score: 0
Wrong Answer
time: 2ms
memory: 8208kb

input:

101 101 5000
0 0
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
0 10
0 11
0 12
0 13
0 14
0 15
0 16
0 17
0 18
0 19
0 20
0 21
0 22
0 23
0 24
0 25
0 26
0 27
0 28
0 29
0 30
0 31
0 32
0 33
0 34
0 35
0 36
0 37
0 38
0 39
0 40
0 41
0 42
0 43
0 44
0 45
0 46
0 47
0 48
0 49
0 50
0 51
0 52
0 53
0 54
0 55
0 56
0 57
0 58
0 ...

output:

5
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
3
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
...

result:

wrong answer 1st numbers differ - expected: '90', found: '5'

Subtask #5:

score: 33
Accepted

Test #44:

score: 33
Accepted
time: 11ms
memory: 8148kb

input:

1 3 50000
0 1
0 2
0 0
0 2
2 0
2 1
0 1
1 0
0 1
1 2
1 2
1 2
0 2
1 0
0 2
2 0
1 2
2 1
2 0
0 1
0 2
1 2
1 0
1 0
1 2
0 1
1 0
0 2
0 2
2 1
0 2
1 0
1 2
2 1
2 1
1 2
0 1
1 2
0 1
0 2
1 2
0 2
2 1
2 0
1 2
1 0
1 0
2 1
1 0
1 0
2 1
1 2
0 2
2 0
1 0
2 0
0 2
1 0
0 2
1 2
2 1
0 1
0 2
1 0
2 1
2 0
1 2
0 1
2 0
2 1
2 0
0 2
1 ...

output:

2
3
3
3
3
3
2
3
2
3
3
3
3
2
3
3
3
2
3
3
3
2
2
2
3
2
3
3
3
3
3
3
3
3
2
2
3
3
2
3
3
2
2
2
3
3
3
2
3
3
3
3
2
3
3
3
2
3
3
2
2
3
3
2
2
3
3
2
3
3
2
2
2
2
3
2
3
3
3
3
3
2
3
2
3
2
2
2
2
3
3
3
3
3
3
3
2
2
3
3
3
2
3
2
3
3
3
2
2
3
2
3
3
3
3
3
3
3
3
3
2
3
3
2
3
3
3
3
2
3
3
3
3
3
3
2
3
3
3
3
3
2
3
3
2
3
3
3
3
2
...

result:

ok 50000 numbers

Test #45:

score: 33
Accepted
time: 24ms
memory: 8064kb

input:

1 10 50000
0 7
0 5
0 8
0 6
0 0
0 1
0 2
0 4
0 3
0 9
6 0
5 8
9 7
8 3
1 3
2 5
9 8
8 3
3 0
6 0
3 5
2 0
2 8
2 5
8 3
8 5
7 2
2 8
0 3
3 2
2 0
3 5
2 0
5 8
5 0
9 2
2 8
2 1
5 3
8 9
1 0
5 6
4 7
5 7
0 9
1 3
3 0
9 3
8 9
3 6
4 0
2 7
9 2
8 2
2 6
5 7
7 4
2 5
3 4
0 1
9 1
9 7
0 1
6 4
9 5
6 8
0 2
9 5
3 1
1 8
9 2
6 8
1...

output:

3
3
2
2
3
4
4
6
4
2
2
2
2
3
3
3
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
2
2
2
4
5
4
2
2
2
2
2
2
2
4
4
4
2
2
2
2
2
2
3
3
3
3
3
3
3
5
3
3
3
3
3
2
2
2
2
3
3
3
4
4
3
9
7
3
2
2
2
2
2
3
2
2
2
2
3
3
2
2
3
4
4
3
4
4
2
2
2
2
2
2
2
2
2
2
2
2
3
2
2
2
2
3
4
2
2
2
2
2
2
2
2
2
...

result:

ok 50000 numbers

Test #46:

score: 33
Accepted
time: 41ms
memory: 8064kb

input:

1 100 50000
0 98
0 99
0 96
0 97
0 94
0 95
0 92
0 93
0 90
0 91
0 88
0 89
0 86
0 87
0 84
0 85
0 82
0 83
0 80
0 81
0 78
0 79
0 76
0 77
0 74
0 75
0 72
0 73
0 70
0 71
0 68
0 69
0 66
0 67
0 64
0 65
0 62
0 63
0 60
0 61
0 58
0 59
0 56
0 57
0 54
0 55
0 52
0 53
0 50
0 51
0 48
0 49
0 46
0 47
0 44
0 45
0 42
0 4...

output:

47
51
23
51
43
51
28
51
11
51
30
51
48
51
34
51
24
51
21
51
32
51
40
51
47
51
36
51
36
51
47
51
41
51
19
51
46
51
30
51
23
51
19
51
45
51
43
51
23
51
46
51
52
51
49
51
45
51
30
51
34
51
29
51
46
51
23
51
37
51
15
51
42
51
29
51
20
51
9
51
30
51
28
51
15
51
32
51
48
51
31
51
23
51
50
51
22
51
14
51
4...

result:

ok 50000 numbers

Test #47:

score: 33
Accepted
time: 64ms
memory: 8076kb

input:

1 1000 50000
0 0
0 3
0 2
0 1
0 6
0 5
0 4
0 9
0 8
0 7
0 12
0 11
0 10
0 15
0 14
0 13
0 18
0 17
0 16
0 21
0 20
0 19
0 24
0 23
0 22
0 27
0 26
0 25
0 30
0 29
0 28
0 33
0 32
0 31
0 36
0 35
0 34
0 39
0 38
0 37
0 42
0 41
0 40
0 45
0 44
0 43
0 48
0 47
0 46
0 51
0 50
0 49
0 54
0 53
0 52
0 57
0 56
0 55
0 60
0 ...

output:

299
334
257
334
316
334
267
334
308
334
215
334
178
334
313
334
81
334
274
334
279
334
135
334
314
334
65
334
327
334
257
334
333
334
285
334
154
334
294
334
223
334
301
334
195
334
268
334
311
334
136
334
224
334
291
334
166
334
312
334
301
334
152
334
329
334
228
334
286
334
316
334
277
334
321
33...

result:

ok 50000 numbers

Test #48:

score: 33
Accepted
time: 92ms
memory: 10520kb

input:

1 10000 50000
0 9999
0 9998
0 9997
0 9996
0 9995
0 9994
0 9993
0 9992
0 9991
0 9990
0 9989
0 9988
0 9987
0 9986
0 9985
0 9984
0 9983
0 9982
0 9981
0 9980
0 9979
0 9978
0 9977
0 9976
0 9975
0 9974
0 9973
0 9972
0 9971
0 9970
0 9969
0 9968
0 9967
0 9966
0 9965
0 9964
0 9963
0 9962
0 9961
0 9960
0 9959...

output:

6234
2035
2035
1088
1088
1088
1088
1088
948
948
948
776
776
776
717
717
717
717
717
717
667
667
667
667
667
667
460
380
380
380
380
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
201
...

result:

ok 50000 numbers

Test #49:

score: 33
Accepted
time: 519ms
memory: 57284kb

input:

1 1000000 50000
0 999998
0 999999
0 999996
0 999997
0 999994
0 999995
0 999992
0 999993
0 999990
0 999991
0 999988
0 999989
0 999986
0 999987
0 999984
0 999985
0 999982
0 999983
0 999980
0 999981
0 999978
0 999979
0 999976
0 999977
0 999974
0 999975
0 999972
0 999973
0 999970
0 999971
0 999968
0 999...

output:

385423
295869
142987
132452
33232
33232
33232
33232
33232
33232
33232
33232
33232
23149
23149
15461
15461
15461
15461
15461
15461
15461
15461
15461
15461
15461
15461
15461
10940
10940
10940
10940
10940
10940
10940
10940
10940
10940
10940
10940
10940
10940
10940
10940
10940
10940
10940
10940
3980
398...

result:

ok 50000 numbers

Test #50:

score: 33
Accepted
time: 556ms
memory: 57432kb

input:

1 1000000 50000
0 2
0 571660
0 0
0 598164
0 4
0 3
0 8
0 7
0 6
0 11
0 10
0 9
0 14
0 13
0 12
0 17
0 16
0 15
0 20
0 19
0 18
0 301790
0 22
0 21
0 26
0 25
0 24
0 29
0 28
0 27
0 32
0 31
0 30
0 35
0 34
0 33
0 38
0 37
0 36
0 41
0 40
0 39
0 44
0 366904
0 42
0 47
0 46
0 45
0 50
0 49
0 48
0 53
0 52
0 51
0 56
0...

output:

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
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
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
7
7
7
7
7
7
7
7
7
7
7
7
...

result:

ok 50000 numbers

Test #51:

score: 33
Accepted
time: 517ms
memory: 57520kb

input:

1 1000000 50000
0 999999
0 999998
0 999997
0 999996
0 999995
0 999994
0 999993
0 999992
0 999991
0 999990
0 999989
0 999988
0 999987
0 999986
0 999985
0 999984
0 999983
0 999982
0 999981
0 999980
0 999979
0 999978
0 999977
0 999976
0 999975
0 999974
0 999973
0 999972
0 999971
0 999970
0 999969
0 999...

output:

781450
466897
466897
72743
72743
72743
72743
72743
72743
72743
72743
72743
72743
51263
51263
51263
51263
51263
51263
51263
51263
51263
39751
39751
39751
39751
39751
31609
31609
31609
30674
30674
30674
30674
30674
30674
30674
30674
30674
30674
30674
30674
30674
30674
30674
30674
30674
4773
4773
4773
...

result:

ok 50000 numbers

Test #52:

score: 33
Accepted
time: 661ms
memory: 58172kb

input:

1 1000000 50000
0 793934
0 196527
0 191558
0 269493
0 224163
0 496259
0 840446
0 914347
0 749623
0 744160
0 522563
0 667276
0 42573
0 944015
0 530889
0 905152
0 440648
0 187960
0 746314
0 47304
0 880453
0 499207
0 651169
0 698608
0 183735
0 83408
0 685090
0 148429
0 436235
0 549828
0 536632
0 249796...

output:

2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
...

result:

ok 50000 numbers

Test #53:

score: 33
Accepted
time: 496ms
memory: 57640kb

input:

1 1000000 50000
0 1
0 0
0 3
0 2
0 5
0 4
0 7
0 6
0 9
0 8
0 11
0 10
0 13
0 12
0 15
0 14
0 17
0 16
0 19
0 18
0 21
0 20
0 23
0 22
0 25
0 24
0 27
0 26
0 29
0 28
0 31
0 30
0 33
0 32
0 35
0 34
0 37
0 36
0 39
0 38
0 41
0 40
0 43
0 42
0 45
0 44
0 47
0 46
0 49
0 48
0 51
0 50
0 53
0 52
0 55
0 54
0 57
0 56
0 59...

output:

477217
500001
467927
500001
195870
500001
490387
500001
292695
500001
178047
500001
398425
500001
327735
500001
252186
500001
227485
500001
188786
500001
265043
500001
484268
500001
229535
500001
334507
500001
404834
500001
418499
500001
335444
500001
231599
500001
457341
500001
274731
500001
324051...

result:

ok 50000 numbers

Test #54:

score: 33
Accepted
time: 503ms
memory: 57368kb

input:

1 1000000 50000
0 0
0 3
0 2
0 1
0 6
0 5
0 4
0 9
0 8
0 7
0 12
0 11
0 10
0 15
0 14
0 13
0 18
0 17
0 16
0 21
0 20
0 19
0 24
0 23
0 22
0 27
0 26
0 25
0 30
0 29
0 28
0 33
0 32
0 31
0 36
0 35
0 34
0 39
0 38
0 37
0 42
0 41
0 40
0 45
0 44
0 43
0 48
0 47
0 46
0 51
0 50
0 49
0 54
0 53
0 52
0 57
0 56
0 55
0 60...

output:

89901
333334
261007
333334
141158
333334
270976
333334
176861
333334
292328
333334
248800
333334
292386
333334
280833
333334
141024
333334
43568
333334
261754
333334
208251
333334
163703
333334
249926
333334
109947
333334
216569
333334
313325
333334
73655
333334
306509
333334
115095
333334
167988
33...

result:

ok 50000 numbers

Test #55:

score: 33
Accepted
time: 497ms
memory: 56696kb

input:

1 1000000 50000
0 0
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
0 10
0 11
0 12
0 13
0 14
0 15
0 16
0 17
0 18
0 19
0 20
0 21
0 22
0 23
0 24
0 25
0 26
0 27
0 28
0 29
0 30
0 31
0 32
0 33
0 34
0 35
0 36
0 37
0 38
0 39
0 40
0 41
0 42
0 43
0 44
0 45
0 46
0 47
0 48
0 49
0 50
0 51
0 52
0 53
0 54
0 55
0 56
0 57
0 58...

output:

562618
1000000
999353
1000000
869109
1000000
721525
1000000
832796
1000000
956260
1000000
243339
1000000
870965
1000000
849270
1000000
769026
1000000
422210
1000000
150924
1000000
718460
1000000
524133
1000000
251039
1000000
858858
1000000
402384
1000000
989379
1000000
525102
1000000
738099
1000000
...

result:

ok 50000 numbers

Subtask #6:

score: 0
Skipped

Dependency #1:

0%