QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#832828#9240. Mosaicle0n#12 118ms33008kbC++203.0kb2024-12-26 09:02:092024-12-26 09:02:14

Judging History

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

  • [2024-12-26 09:02:14]
  • 评测
  • 测评结果:12
  • 用时:118ms
  • 内存:33008kb
  • [2024-12-26 09:02:09]
  • 提交

answer

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

using namespace std;
typedef long long ll;

const int N = 2e5 + 5;
struct BIT
{
    ll tree[N];
    int n;
    void init(int m)
    {
        n = m;
        int i;
        for(i = 1; i <= n; i++)
            tree[i] = 0;
    }
    void add(int x, ll y)
    {
        while(x <= n)
        {
            tree[x] += y;
            x += (x & -x);
        }
    }
    ll qry(int x)
    {
        ll ans = 0;
        while(x)
        {
            ans += tree[x];
            x -= (x & -x);
        }
        return ans;
    }
    ll qlr(int l, int r)
    {
        l = max(l, 1);
        r = min(r, n);
        if(l > r)
            return 0;
        return qry(r) - qry(l - 1);
    }
};
BIT qwq[4];
int row[4][N], col[N][4], sr[4][N], sc[N][4], n;
ll sum(int x, int y)
{
    if(x < 0 || y < 0)
        return 0;
    if(x < 3)
        return sr[x][y];
    if(y < 3)
        return sc[x][y];
    ll res = sr[2][y] + sc[x][2] - sr[2][2], a;
    if(row[2][2])
        res += min(x - 2, y - 2);
    a = y - x + 2;
    res += qwq[0].qlr(1, a) * (x - 2) + qwq[0].qlr(a + 1, n) * y - qwq[1].qlr(a + 1, n);
    a = x - y + 2;
    res += qwq[2].qlr(1, a) * (y - 2) + qwq[2].qlr(a + 1, n) * x - qwq[3].qlr(a + 1, n);
    return res;
}
vector<ll> mosaic(vector<int> X, vector<int> Y, vector<int> T, vector<int> B, vector<int> L, vector<int> R)
{
    n = X.size();
    int q = T.size(), i, j;
    vector<ll> C(q, 0);
    for(i = 0; i < n; i++)
        row[0][i] = X[i];
    for(i = 0; i < n; i++)
        col[i][0] = Y[i];
    for(i = 0; i < 3; i++)
    {
        row[i][0] = col[i][0];
        col[0][i] = row[0][i];
    }
    for(i = 1; i < 3; i++)
        for(j = 1; j < n; j++)
            row[i][j] = (!row[i - 1][j] && !row[i][j - 1]);
    for(i = 1; i < n; i++)
        for(j = 1; j < 3; j++)
            col[i][j] = (!col[i - 1][j] && !col[i][j - 1]);
    for(i = 0; i < 3; i++)
        for(j = 0; j < n; j++)
            sr[i][j] = row[i][j];
    for(i = 0; i < 3; i++)
        for(j = 1; j < n; j++)
            sr[i][j] += sr[i][j - 1];
    for(i = 1; i < 3; i++)
        for(j = 0; j < n; j++)
            sr[i][j] += sr[i - 1][j];
    for(i = 0; i < n; i++)
        for(j = 0; j < 3; j++)
            sc[i][j] = col[i][j];
    for(i = 0; i < n; i++)
        for(j = 1; j < 3; j++)
            sc[i][j] += sc[i][j - 1];
    for(i = 1; i < n; i++)
        for(j = 0; j < 3; j++)
            sc[i][j] += sc[i - 1][j];
    for(i = 0; i < 4; i++)
        qwq[i].init(n);
    for(i = 3; i < n; i++)
        if(row[2][i])
        {
            qwq[0].add(i, 1);
            qwq[1].add(i, i);
        }
    for(i = 3; i < n; i++)
        if(col[i][2])
        {
            qwq[2].add(i, 1);
            qwq[3].add(i, i);
        }
    for(i = 0; i < q; i++)
        C[i] = sum(B[i], R[i]) - sum(T[i] - 1, R[i]) - sum(B[i], L[i] - 1) + sum(T[i] - 1, L[i] - 1);
    return C;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 5
Accepted

Test #1:

score: 5
Accepted
time: 0ms
memory: 20200kb

input:

njJ9Z7VxxKGR6SUcJMgdzy3qMz4JZ1Tq
1
0
0
10
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0

output:

Wm5rkGNobnYjFI7TIY17RAm6FAQ2LlO9
OK
0
0
0
0
0
0
0
0
0
0

result:

ok 

Test #2:

score: 5
Accepted
time: 0ms
memory: 16372kb

input:

njJ9Z7VxxKGR6SUcJMgdzy3qMz4JZ1Tq
1
1
1
10
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0

output:

Wm5rkGNobnYjFI7TIY17RAm6FAQ2LlO9
OK
1
1
1
1
1
1
1
1
1
1

result:

ok 

Test #3:

score: 5
Accepted
time: 0ms
memory: 20244kb

input:

njJ9Z7VxxKGR6SUcJMgdzy3qMz4JZ1Tq
2
1 0
1 0
10
1 1 0 1
1 1 0 1
0 0 0 0
0 1 0 1
0 1 0 1
1 1 0 0
0 1 0 1
0 1 1 1
1 1 0 1
0 0 0 1

output:

Wm5rkGNobnYjFI7TIY17RAm6FAQ2LlO9
OK
1
1
1
2
2
0
2
1
1
1

result:

ok 

Test #4:

score: 5
Accepted
time: 3ms
memory: 20472kb

input:

njJ9Z7VxxKGR6SUcJMgdzy3qMz4JZ1Tq
2
1 0
1 0
10
0 1 1 1
0 1 0 1
0 1 0 0
1 1 0 1
0 1 0 1
0 1 0 0
1 1 1 1
0 0 0 1
0 1 0 0
1 1 0 0

output:

Wm5rkGNobnYjFI7TIY17RAm6FAQ2LlO9
OK
1
2
1
1
2
1
1
1
1
0

result:

ok 

Test #5:

score: 5
Accepted
time: 0ms
memory: 18144kb

input:

njJ9Z7VxxKGR6SUcJMgdzy3qMz4JZ1Tq
2
0 1
0 0
10
0 1 0 0
0 0 0 1
0 1 0 0
0 0 0 0
1 1 1 1
0 1 0 0
0 0 0 1
0 1 0 1
0 1 0 1
0 1 0 1

output:

Wm5rkGNobnYjFI7TIY17RAm6FAQ2LlO9
OK
0
1
0
0
0
0
1
1
1
1

result:

ok 

Test #6:

score: 5
Accepted
time: 0ms
memory: 20152kb

input:

njJ9Z7VxxKGR6SUcJMgdzy3qMz4JZ1Tq
2
1 1
1 0
10
0 0 0 1
0 0 0 1
1 1 0 1
0 1 0 1
0 1 0 0
0 1 1 1
1 1 0 1
0 0 1 1
0 1 0 0
0 1 0 0

output:

Wm5rkGNobnYjFI7TIY17RAm6FAQ2LlO9
OK
2
2
0
2
1
1
0
1
1
1

result:

ok 

Test #7:

score: 5
Accepted
time: 2ms
memory: 16164kb

input:

njJ9Z7VxxKGR6SUcJMgdzy3qMz4JZ1Tq
2
0 0
0 1
10
0 0 0 0
0 1 0 1
0 1 0 1
0 1 0 1
0 1 1 1
0 0 1 1
0 0 0 1
0 1 0 0
1 1 0 1
1 1 0 1

output:

Wm5rkGNobnYjFI7TIY17RAm6FAQ2LlO9
OK
0
1
1
1
0
0
0
1
1
1

result:

ok 

Test #8:

score: 5
Accepted
time: 0ms
memory: 16376kb

input:

njJ9Z7VxxKGR6SUcJMgdzy3qMz4JZ1Tq
2
1 0
1 1
10
0 1 0 0
1 1 0 1
0 0 0 1
1 1 1 1
1 1 0 0
0 1 1 1
0 1 0 0
0 0 1 1
1 1 0 1
0 1 0 1

output:

Wm5rkGNobnYjFI7TIY17RAm6FAQ2LlO9
OK
2
1
1
0
1
0
2
0
1
2

result:

ok 

Test #9:

score: 5
Accepted
time: 2ms
memory: 18424kb

input:

njJ9Z7VxxKGR6SUcJMgdzy3qMz4JZ1Tq
2
0 1
0 1
10
0 1 0 1
0 1 0 1
1 1 1 1
0 1 0 1
0 0 1 1
0 1 0 1
0 1 1 1
0 0 0 0
0 1 0 0
0 1 0 1

output:

Wm5rkGNobnYjFI7TIY17RAm6FAQ2LlO9
OK
2
2
0
2
1
2
1
0
1
2

result:

ok 

Test #10:

score: 5
Accepted
time: 0ms
memory: 20184kb

input:

njJ9Z7VxxKGR6SUcJMgdzy3qMz4JZ1Tq
2
1 1
1 1
10
0 0 0 1
0 1 0 0
0 1 0 0
0 1 0 1
0 0 0 0
0 1 0 1
0 1 0 1
0 1 1 1
0 1 0 1
1 1 1 1

output:

Wm5rkGNobnYjFI7TIY17RAm6FAQ2LlO9
OK
2
2
2
3
1
3
3
1
3
0

result:

ok 

Subtask #2:

score: 0
Wrong Answer

Dependency #1:

100%
Accepted

Test #11:

score: 0
Wrong Answer
time: 0ms
memory: 20184kb

input:

njJ9Z7VxxKGR6SUcJMgdzy3qMz4JZ1Tq
199
0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 1 0 0 1 0 1 1 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 0 0 0 1...

output:

Wm5rkGNobnYjFI7TIY17RAm6FAQ2LlO9
OK
1078
9577
897
428
10378
1260
1733
4327
4371
1864
34
430
709
10047
5295
625
39
10
196
416
3048
87
4065
49
4126
1220
80
1440
1083
5053
5561
2680
56
2539
1107
57
3705
1996
327
2789
432
1542
571
1643
756
5253
1931
1934
245
3545
2026
4364
935
1506
1992
1815
75
9847
127...

result:

wrong answer 4th lines differ - on the 1st token, expected: '5062', found: '9577'

Subtask #3:

score: 7
Accepted

Test #18:

score: 7
Accepted
time: 62ms
memory: 33008kb

input:

njJ9Z7VxxKGR6SUcJMgdzy3qMz4JZ1Tq
199999
0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 1 1 1 1 1 0 0 0 1 0 0 0 0 1 0 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 ...

output:

Wm5rkGNobnYjFI7TIY17RAm6FAQ2LlO9
OK
1314
79312
13238
63518
27135
86532
21129
53105
14461
13920
65981
66950
13385
23885
37091
56646
69855
64947
74166
41759
50738
1366
65318
58452
24337
58380
29379
59258
39016
4990
60529
23351
60370
12835
25686
8151
17007
56172
10913
7224
30221
73673
55593
33643
44070...

result:

ok 

Test #19:

score: 7
Accepted
time: 69ms
memory: 33004kb

input:

njJ9Z7VxxKGR6SUcJMgdzy3qMz4JZ1Tq
199999
0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 ...

output:

Wm5rkGNobnYjFI7TIY17RAm6FAQ2LlO9
OK
97288
84412
98958
98546
95894
91536
99791
94852
96879
98784
94005
99030
95916
90829
96593
96545
90518
95251
93882
95122
94925
96009
98788
98866
95996
97263
95422
95733
96576
97730
98106
96939
94030
94576
94019
92982
96921
95715
96639
93579
97372
97983
95123
95211
...

result:

ok 

Test #20:

score: 7
Accepted
time: 64ms
memory: 32908kb

input:

njJ9Z7VxxKGR6SUcJMgdzy3qMz4JZ1Tq
200000
1 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 0 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 1 1 0 0 1 0 ...

output:

Wm5rkGNobnYjFI7TIY17RAm6FAQ2LlO9
OK
63186
59869
80378
71302
94439
63006
84372
99459
21243
54879
86436
65742
94261
35276
55849
93734
72881
49090
34951
93280
90257
58145
84070
58055
95069
56733
82475
51301
59357
39555
95572
87255
37523
68017
80309
52815
95469
29140
85700
46052
56013
71305
90947
7434
6...

result:

ok 

Test #21:

score: 7
Accepted
time: 65ms
memory: 33004kb

input:

njJ9Z7VxxKGR6SUcJMgdzy3qMz4JZ1Tq
200000
1 0 0 0 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 0 0 0 1 0 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 ...

output:

Wm5rkGNobnYjFI7TIY17RAm6FAQ2LlO9
OK
99156
96398
98499
93058
98359
93547
93120
98997
99065
97926
99050
95046
96687
98137
97249
97530
96983
98126
89892
94397
98111
96471
95754
99320
97511
95029
96780
93937
97095
97566
97024
99338
97729
99722
97152
98216
95895
97942
98980
99845
96992
97397
99255
97894
...

result:

ok 

Test #22:

score: 7
Accepted
time: 47ms
memory: 30004kb

input:

njJ9Z7VxxKGR6SUcJMgdzy3qMz4JZ1Tq
100000
0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0 0 1 1 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 ...

output:

Wm5rkGNobnYjFI7TIY17RAm6FAQ2LlO9
OK
34862
31357
15637
16893
7670
123
17919
20936
7467
18723
34082
1835
18668
23866
630
26206
40304
6217
25617
18490
11507
39163
5570
16345
4695
30449
15992
13307
5315
5393
8864
29876
34139
3227
28910
11628
2250
38538
12586
299
1066
8238
40627
7418
7600
3123
18111
9012...

result:

ok 

Subtask #4:

score: 0
Skipped

Dependency #2:

0%

Subtask #5:

score: 0
Wrong Answer

Test #31:

score: 0
Wrong Answer
time: 46ms
memory: 23300kb

input:

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

output:

Wm5rkGNobnYjFI7TIY17RAm6FAQ2LlO9
OK
7
-10
2
2
15
20
8
2
18
19
1
0
3
7
4
17
32
19
3
-5
-5
5
-9
14
20
-13
6
0
7
16
3
4
-3
3
9
11
10
4
-9
14
9
33
2
14
7
14
22
3
6
3
4
13
22
1
2
5
11
5
1
6
4
5
13
6
16
32
0
3
7
10
-4
6
2
8
4
6
10
13
5
10
-2
19
13
-7
3
3
20
1
2
-10
11
9
20
5
11
2
3
4
6
22
16
1
3
-13
3
13
...

result:

wrong answer 3rd lines differ - on the 1st token, expected: '14', found: '7'

Subtask #6:

score: 0
Wrong Answer

Test #42:

score: 22
Accepted
time: 118ms
memory: 32928kb

input:

njJ9Z7VxxKGR6SUcJMgdzy3qMz4JZ1Tq
199999
0 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 0 1 1 0 0 0 0 1 0 1 ...

output:

Wm5rkGNobnYjFI7TIY17RAm6FAQ2LlO9
OK
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
...

result:

ok 

Test #43:

score: 0
Wrong Answer
time: 112ms
memory: 32916kb

input:

njJ9Z7VxxKGR6SUcJMgdzy3qMz4JZ1Tq
200000
1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 1 ...

output:

Wm5rkGNobnYjFI7TIY17RAm6FAQ2LlO9
OK
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
...

result:

wrong answer 15384th lines differ - on the 1st token, expected: '0', found: '34416'

Subtask #7:

score: 0
Skipped

Dependency #3:

100%
Accepted

Dependency #6:

0%

Subtask #8:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

0%