QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#139508#4564. Digital Circuitpandapythoner#34 165ms13196kbC++173.1kb2023-08-13 19:10:592024-07-04 01:41:18

Judging History

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

  • [2024-07-04 01:41:18]
  • 评测
  • 测评结果:34
  • 用时:165ms
  • 内存:13196kb
  • [2023-08-13 19:10:59]
  • 提交

answer

#ifdef LOCAL
#define _GLIBCXX_DEBUG
#else

#endif

#include <bits/stdc++.h>

#include "circuit.h"

using namespace std;

#define ll long long
#define flt double
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()

const ll inf = 1e18;
mt19937 rnd(234);

const ll mod = 1'000'002'022;

int n, m;
vector<vector<int>> g;
vector<int> a;
vector<int> prnt;
vector<int> d;
vector<array<ll, 2>> t;
bool bintree;

array<ll, 2> dfs_ways(int v) {
    if (v >= n) {
        array<ll, 2> rs = {1, 0};
        if (a[v - n] == 1) {
            rs[1] = 1;
        }
        return rs;
    }
    array<ll, 2> dp = {0, 1};
    ll sm_cnt = (int)g[v].size();
    for (auto to : g[v]) {
        auto [cnt01, cnt1] = dfs_ways(to);
        array<ll, 2> ndp = {0, 0};
        ndp[0] = (dp[0] * cnt01 + dp[1] * cnt1) % mod;
        ndp[1] = dp[1] * cnt01 % mod;
        ndp.swap(dp);
        sm_cnt = (sm_cnt * cnt01) % mod;
    }
    ll cnt1 = dp[0];
    return {sm_cnt, cnt1};
}

ll count_ways_dfs() {
    auto [sm_cnt, cnt1] = dfs_ways(0);
    return cnt1;
}

void apply(int v) {
    d[v] ^= 1;
    swap(t[v][0], t[v][1]);
}

void push(int v) {
    if (d[v]) {
        apply(v + v + 1);
        apply(v + v + 2);
        d[v] = 0;
    }
}

void upd(int v) {
    array<ll, 2> dp = {0, 1};
    ll sm_cnt = (int)g[v].size();
    for (auto to : g[v]) {
        auto [cnt0, cnt1] = t[to];
        ll cnt01 = (cnt0 + cnt1) % mod;
        array<ll, 2> ndp = {0, 0};
        ndp[0] = (dp[0] * cnt01 + dp[1] * cnt1) % mod;
        ndp[1] = dp[1] * cnt01 % mod;
        ndp.swap(dp);
        sm_cnt = (sm_cnt * cnt01) % mod;
    }
    ll cnt1 = dp[0];
    ll cnt0 = (sm_cnt + mod - cnt1) % mod;
    t[v] = {cnt0, cnt1};
}

void build_bintree() {
    d.assign(n + m, 0);
    t.assign(n + m, {0, 0});
    for (int i = 0; i < m; i += 1) {
        t[n + i][a[i]] += 1;
    }
    for (int i = n - 1; i >= 0; i -= 1) {
        upd(i);
    }
}

void chng_bintree(int v, int tl, int tr, int l, int r) {
    if (r < tl || tr < l) {
        return;
    }
    if (l <= tl && tr <= r) {
        apply(v);
        return;
    }
    int tm = (tl + tr) / 2;
    push(v);
    chng_bintree(v + v + 1, tl, tm, l, r);
    chng_bintree(v + v + 2, tm + 1, tr, l, r);
    upd(v);
}

void init(int N, int M, vector<int> P, vector<int> A) {
    n = N;
    m = M;
    prnt = P;
    a = A;
    g.assign(n + m, vector<int>());
    for (int i = 1; i < n + m; i += 1) {
        g[prnt[i]].push_back(i);
    }
    bintree = (m == n + 1);
	ll x = 1;
	while(x < m){
		x *= 2;
	}
	if(x != m){
		bintree = false;
	}
    for (int i = 1; i < n + m; i += 1) {
        if (prnt[i] != (i - 1) / 2) {
            bintree = false;
            break;
        }
    }
    if (bintree) {
        build_bintree();
        return;
    }
}

int count_ways(int L, int R) {
    int l = L - n;
    int r = R - n;
    if (bintree) {
        chng_bintree(0, 0, m - 1, l, r);
        return t[0][1];
    }
    for (int i = l; i <= r; i += 1) {
        a[i] ^= 1;
    }
    ll rs = count_ways_dfs();
    return rs;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 2
Accepted

Test #1:

score: 2
Accepted
time: 1ms
memory: 3972kb

input:

1 2
-1 0 0
0 0
1 1
2 2
1 2
2 2
1 2
-1 -1
-2 -2

output:

1
2
0
1
1

result:

ok 7 lines

Test #2:

score: 2
Accepted
time: 1ms
memory: 3776kb

input:

1 1
-1 0
0
1 1
1 1
1 1
1 1
-1 -1
-2 -2

output:

1
0
1
0

result:

ok 6 lines

Test #3:

score: 2
Accepted
time: 1ms
memory: 3764kb

input:

1 972
-1 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 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 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 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:

509
483
489
500
481

result:

ok 7 lines

Test #4:

score: 2
Accepted
time: 1ms
memory: 3812kb

input:

1 1000
-1 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 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 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 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:

4
40
428
262
237

result:

ok 7 lines

Test #5:

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

input:

1 1000
-1 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 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 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 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:

898
828
828
617
582

result:

ok 7 lines

Test #6:

score: 2
Accepted
time: 1ms
memory: 3764kb

input:

1 1000
-1 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 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 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 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:

535
494
500
498
509

result:

ok 7 lines

Test #7:

score: 2
Accepted
time: 1ms
memory: 3976kb

input:

1 1000
-1 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 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 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 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:

517
486
511
487
512

result:

ok 7 lines

Test #8:

score: 2
Accepted
time: 1ms
memory: 3784kb

input:

1 1000
-1 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 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 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 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:

501
500
499
500
501

result:

ok 7 lines

Subtask #2:

score: 7
Accepted

Test #9:

score: 7
Accepted
time: 1ms
memory: 3784kb

input:

1 2
-1 0 0
0 0
1 1
2 2
1 2
2 2
1 2
-1 -1
-2 -2

output:

1
2
0
1
1

result:

ok 7 lines

Test #10:

score: 7
Accepted
time: 1ms
memory: 3756kb

input:

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

output:

52130940
785285606
585825652

result:

ok 5 lines

Test #11:

score: 7
Accepted
time: 1ms
memory: 3804kb

input:

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

output:

655368480
979089518
133738288
486298234
70832346

result:

ok 7 lines

Test #12:

score: 7
Accepted
time: 1ms
memory: 3836kb

input:

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

output:

640949026
225483138
810019272
225483138
640949026

result:

ok 7 lines

Test #13:

score: 7
Accepted
time: 1ms
memory: 3848kb

input:

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

output:

655368480
457459326
408972838
872925214
486298234

result:

ok 7 lines

Test #14:

score: 7
Accepted
time: 1ms
memory: 3792kb

input:

726 727
-1 0 0 2 1 1 2 3 5 7 9 4 9 7 6 6 11 8 16 12 17 19 3 14 18 16 15 25 10 10 8 27 26 24 20 30 14 18 33 32 4 40 12 25 30 22 43 45 39 46 13 33 23 13 35 26 31 15 57 47 38 22 37 28 41 55 39 43 23 29 64 17 49 67 24 36 55 5 59 62 63 59 48 28 70 11 71 74 76 56 84 66 88 88 56 58 77 27 79 38 74 98 95 44 ...

output:

706880838
491517432

result:

ok 4 lines

Test #15:

score: 7
Accepted
time: 1ms
memory: 3784kb

input:

999 1000
-1 0 1 1 0 4 2 5 5 8 8 3 7 9 6 4 15 16 7 2 11 13 13 18 21 23 12 10 6 20 29 18 16 19 14 31 24 34 35 17 28 26 27 31 29 25 45 43 33 46 32 23 27 42 48 14 15 42 45 37 12 41 59 43 51 57 3 47 40 38 39 64 66 21 56 19 61 59 58 55 26 11 40 77 63 82 48 85 58 53 56 10 22 75 92 91 92 47 81 52 71 96 100 ...

output:

942041994
438937124
841357772
232099870
90068874

result:

ok 7 lines

Test #16:

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

input:

999 1000
-1 0 1 2 3 0 3 6 5 8 6 8 11 9 1 14 10 12 10 13 2 20 4 17 22 13 12 26 15 11 14 27 31 4 30 19 32 18 32 21 38 36 30 19 17 25 23 25 39 27 48 40 41 41 47 38 46 56 54 56 34 45 20 52 57 58 62 65 65 29 40 43 28 54 5 34 26 15 61 67 49 9 43 46 73 76 68 79 87 83 81 47 82 92 68 52 28 86 69 60 93 71 71 ...

output:

846777934
543886020
117265458
170290282
281705356

result:

ok 7 lines

Test #17:

score: 7
Accepted
time: 1ms
memory: 3876kb

input:

999 1000
-1 0 1 0 1 4 2 5 3 2 5 6 3 9 8 6 7 10 15 14 8 11 18 22 19 12 4 25 22 12 21 7 31 17 15 13 30 27 18 11 38 36 27 42 42 40 37 9 13 20 29 10 49 47 43 34 50 55 19 58 28 17 47 48 35 64 36 64 61 33 37 33 62 16 24 53 67 65 73 70 29 26 54 58 69 51 75 14 82 59 59 77 80 63 46 90 56 30 77 94 39 49 68 66...

output:

705376374
644042668
670552036

result:

ok 5 lines

Test #18:

score: 7
Accepted
time: 1ms
memory: 3924kb

input:

999 1000
-1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 9...

output:

934163262
112313082
337041484
769464108
426960866

result:

ok 7 lines

Test #19:

score: 7
Accepted
time: 1ms
memory: 3936kb

input:

999 1000
-1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 9...

output:

824177488
180713918
915259054
915239172
406741568

result:

ok 7 lines

Test #20:

score: 7
Accepted
time: 1ms
memory: 4024kb

input:

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

output:

740267208
421935812
842353974
899432906
740267208

result:

ok 7 lines

Subtask #3:

score: 9
Accepted

Dependency #1:

100%
Accepted

Dependency #2:

100%
Accepted

Test #21:

score: 9
Accepted
time: 1ms
memory: 3820kb

input:

722 938
-1 0 0 0 3 4 0 0 4 2 8 6 6 0 0 12 0 9 12 4 10 18 18 16 6 7 25 6 6 19 27 22 2 11 19 10 14 9 35 16 25 23 25 6 39 14 23 44 36 2 49 11 47 43 32 37 27 23 34 6 43 21 0 32 28 64 12 2 49 49 56 14 70 67 67 27 18 24 75 39 13 53 27 71 77 69 0 32 19 88 66 15 90 71 74 94 28 86 63 80 89 0 69 65 3 104 56 1...

output:

759476520
986929966
529361200
22204736

result:

ok 6 lines

Test #22:

score: 9
Accepted
time: 1ms
memory: 3788kb

input:

807 483
-1 0 1 1 2 0 4 5 2 7 7 10 8 3 11 5 15 12 14 10 14 20 11 12 18 16 23 9 4 19 27 19 22 32 23 28 29 16 20 34 24 37 36 30 8 41 30 15 47 48 33 32 24 46 13 33 49 35 45 43 31 31 56 59 17 22 21 61 62 62 67 37 65 46 55 43 67 60 49 59 48 71 25 61 44 17 72 70 85 84 41 50 64 65 3 44 87 45 88 76 75 34 82 ...

output:

747493058
75435678
304852326
580470868
792077662

result:

ok 7 lines

Test #23:

score: 9
Accepted
time: 1ms
memory: 3920kb

input:

659 548
-1 0 1 2 2 4 5 0 1 7 4 9 3 7 10 8 14 16 15 18 10 2 9 15 13 16 24 7 22 10 8 26 29 17 22 33 0 36 9 21 26 33 26 37 14 41 31 1 37 47 23 36 43 32 42 49 20 23 54 52 56 60 48 44 44 43 29 62 55 66 59 27 64 22 13 66 75 51 60 64 46 70 60 77 8 62 52 77 55 72 77 59 70 68 74 15 91 84 61 3 33 83 74 86 36 ...

output:

738488400
740072304
96397334
825774292
597854808

result:

ok 7 lines

Test #24:

score: 9
Accepted
time: 0ms
memory: 3884kb

input:

1000 1000
-1 0 1 0 1 4 0 4 1 5 9 5 6 10 2 7 1 11 0 0 0 6 1 18 1 21 4 25 3 18 5 6 19 18 18 16 28 17 19 24 20 18 0 24 42 41 34 35 7 24 45 17 16 29 29 53 53 44 39 40 33 41 0 0 11 32 54 46 42 19 64 62 32 15 66 63 12 42 26 56 49 74 77 11 30 80 69 9 7 86 45 69 8 29 90 74 17 78 76 39 90 61 48 85 96 101 91 ...

output:

933758984
95006268
317881142
882413916
585663928

result:

ok 7 lines

Test #25:

score: 9
Accepted
time: 1ms
memory: 3888kb

input:

1000 1000
-1 0 1 1 2 0 0 6 6 8 8 8 9 11 7 11 14 16 16 7 14 7 20 19 7 20 20 25 17 18 12 27 29 32 11 29 17 8 37 7 7 18 31 42 40 40 29 41 14 46 48 40 32 35 18 41 54 32 43 32 57 57 32 37 45 64 56 47 54 62 41 50 34 47 48 37 36 63 25 12 45 65 46 33 37 49 25 86 86 65 64 84 86 64 25 85 41 51 41 71 87 92 75 ...

output:

814713862
179971074
530108958
172714996
724155456

result:

ok 7 lines

Test #26:

score: 9
Accepted
time: 1ms
memory: 3844kb

input:

1000 1000
-1 0 0 0 2 2 2 6 6 5 2 9 6 12 10 8 15 15 14 8 2 7 12 6 5 14 25 0 10 20 20 6 16 3 33 31 15 11 31 10 0 36 27 26 43 27 38 31 42 10 2 24 50 8 2 24 55 55 44 6 51 2 38 61 24 42 22 57 31 57 67 38 65 24 15 24 52 6 23 56 6 51 55 71 18 84 80 54 76 71 75 64 78 62 55 45 16 75 73 63 56 100 51 23 91 86 ...

output:

10265418
663812742
838804900
935588604
32034942

result:

ok 7 lines

Test #27:

score: 9
Accepted
time: 1ms
memory: 3864kb

input:

1000 1000
-1 0 0 1 0 3 2 6 1 0 6 10 0 12 12 3 14 6 13 9 0 16 15 13 20 12 16 0 15 18 26 18 23 20 21 27 18 13 33 18 32 18 39 16 39 29 33 46 3 27 36 35 33 27 23 35 13 49 13 12 48 57 35 43 10 12 57 40 53 15 38 59 20 29 23 60 23 76 23 40 79 66 74 56 77 27 40 40 59 58 31 86 89 65 69 93 70 59 85 56 79 93 9...

output:

726868562
458496628
699307100
591908584
227703358

result:

ok 7 lines

Test #28:

score: 9
Accepted
time: 0ms
memory: 4080kb

input:

1000 1000
-1 0 0 2 2 2 0 0 7 5 8 0 11 7 5 13 8 13 8 16 14 15 13 18 0 21 13 26 22 0 16 17 1 22 26 31 31 27 27 31 7 5 34 15 11 9 12 22 8 25 8 31 29 29 48 50 29 47 29 43 51 36 61 6 15 58 64 63 29 68 58 21 43 7 72 63 33 70 12 18 72 15 56 79 70 56 65 73 77 64 64 56 73 77 64 22 88 40 85 77 73 80 63 89 3 6...

output:

230025634
903738266
10382050
690967620
797613426

result:

ok 7 lines

Test #29:

score: 9
Accepted
time: 1ms
memory: 3784kb

input:

1 1000
-1 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 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 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 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:

489
507
492
510
490

result:

ok 7 lines

Test #30:

score: 9
Accepted
time: 0ms
memory: 4068kb

input:

1 1000
-1 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 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 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 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:

486
458
478
508
512

result:

ok 7 lines

Test #31:

score: 9
Accepted
time: 1ms
memory: 3892kb

input:

1000 1
-1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 ...

output:

1
0
1
0
1

result:

ok 7 lines

Test #32:

score: 9
Accepted
time: 1ms
memory: 3876kb

input:

999 1000
-1 0 1 0 2 1 3 5 6 2 7 6 10 9 8 5 4 16 4 11 13 13 7 9 19 24 14 11 19 26 15 18 24 32 29 28 18 22 25 3 35 21 20 40 33 17 35 31 29 37 46 50 49 17 10 45 27 49 39 30 57 42 47 52 56 60 20 58 53 36 62 31 41 59 54 21 47 54 32 36 14 39 74 40 65 38 12 56 73 77 23 58 42 12 76 60 95 87 95 86 71 86 65 9...

output:

952151020
443043678
464032544
372922164
106850846

result:

ok 7 lines

Test #33:

score: 9
Accepted
time: 1ms
memory: 3920kb

input:

499 999
-1 0 1 0 1 3 3 1 6 6 8 0 8 12 5 9 3 6 11 16 12 19 10 5 18 14 8 20 25 14 23 4 30 29 31 24 33 12 31 34 35 29 14 28 15 29 38 11 33 25 47 43 42 5 45 48 30 24 56 23 31 55 42 49 53 16 60 65 37 49 65 25 67 52 56 70 48 47 70 59 47 42 75 73 45 70 84 77 62 60 87 56 71 59 37 87 64 19 32 97 71 76 97 81 ...

output:

331823726
717282174
897711128
622871150
337192684

result:

ok 7 lines

Test #34:

score: 9
Accepted
time: 1ms
memory: 3828kb

input:

249 997
-1 0 1 1 0 3 1 4 2 6 3 8 8 2 10 5 10 0 17 9 19 10 17 10 19 18 18 15 21 26 17 30 25 29 26 0 31 26 35 17 39 18 40 35 39 42 30 22 25 35 17 48 49 26 43 37 54 40 2 50 46 52 47 51 52 39 43 44 61 43 0 29 66 36 70 7 26 62 42 68 25 66 65 68 52 69 69 42 84 70 36 52 82 35 93 54 69 30 82 70 84 70 84 91 ...

output:

552267427
469565478
651807128
810234086
287134027

result:

ok 7 lines

Test #35:

score: 9
Accepted
time: 1ms
memory: 3820kb

input:

4 889
-1 0 1 2 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 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 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

output:

235989424
147865831
125587682
158611529
258762404

result:

ok 7 lines

Test #36:

score: 9
Accepted
time: 1ms
memory: 4180kb

input:

1000 1000
-1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 ...

output:

588565178
31154578
152598054
815496242
903968456

result:

ok 7 lines

Test #37:

score: 9
Accepted
time: 1ms
memory: 3888kb

input:

1000 1000
-1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 ...

output:

525
470
474
490
492

result:

ok 7 lines

Test #38:

score: 9
Accepted
time: 1ms
memory: 4184kb

input:

1000 1000
-1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 ...

output:

525
474
526
475
521

result:

ok 7 lines

Test #39:

score: 9
Accepted
time: 1ms
memory: 4072kb

input:

719 408
-1 0 1 0 1 1 5 2 5 6 8 9 7 11 13 11 9 12 14 13 19 20 20 17 22 22 25 24 16 28 28 26 25 29 30 32 33 32 37 38 39 40 36 42 33 44 39 45 35 41 49 49 50 43 51 47 53 56 48 58 59 51 55 62 52 58 61 66 67 62 66 70 71 68 60 72 74 75 76 78 69 79 76 64 80 81 85 84 86 83 88 90 91 89 91 89 95 96 97 98 99 10...

output:

33301336
56907144
944497018
704115760
462015690

result:

ok 7 lines

Test #40:

score: 9
Accepted
time: 1ms
memory: 4000kb

input:

510 819
-1 0 0 1 3 3 2 1 4 0 0 5 0 0 13 2 6 15 11 3 4 2 0 6 2 13 15 22 15 23 10 21 3 24 18 17 17 24 4 3 29 40 16 11 10 28 33 38 39 10 38 28 51 41 50 4 3 56 7 44 44 13 9 49 51 23 39 42 23 40 60 1 63 62 55 62 70 55 64 58 50 34 23 80 71 14 71 56 48 79 8 38 28 92 62 61 73 8 46 16 93 56 100 67 23 92 104 ...

output:

216372980
926486360
572278876
442949060
582680282

result:

ok 7 lines

Test #41:

score: 9
Accepted
time: 1ms
memory: 3792kb

input:

363 882
-1 0 0 0 1 3 2 2 6 4 3 0 10 2 6 13 11 1 10 0 18 5 11 1 13 21 11 21 26 27 7 9 21 2 0 3 35 18 23 33 34 10 27 21 21 2 44 38 18 25 44 5 29 45 42 42 25 46 41 43 19 59 26 55 43 23 11 59 57 62 1 27 67 55 73 34 58 63 64 54 4 47 23 32 5 69 47 23 49 4 33 56 82 87 68 65 58 64 0 48 7 32 35 63 49 98 90 8...

output:

860608712
828138786
455393642
548429080
972077788

result:

ok 7 lines

Test #42:

score: 9
Accepted
time: 1ms
memory: 3760kb

input:

44 947
-1 0 1 1 2 1 1 0 1 3 9 1 9 7 5 2 15 10 16 2 14 2 13 15 3 3 11 26 25 27 26 27 28 32 28 29 33 28 25 38 32 39 37 42 0 0 0 1 0 1 1 1 1 1 1 1 2 0 2 2 2 2 0 0 2 1 3 2 1 2 3 3 2 3 2 2 1 3 4 4 2 4 2 1 4 4 4 2 3 2 4 5 0 0 4 2 2 6 4 5 4 1 2 7 1 7 2 3 6 4 7 3 5 3 2 3 1 4 6 3 6 7 4 1 1 0 2 2 3 4 4 2 5 7 ...

output:

319941708
871406470
716326204
656940502
100714900

result:

ok 7 lines

Subtask #4:

score: 4
Accepted

Test #43:

score: 4
Accepted
time: 60ms
memory: 8112kb

input:

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

output:

431985922
394586018
431985922
469385826
506785730
469385826
431985922
469385826
431985922
469385826
506785730
469385826
431985922
394586018
357186114
319786210
357186114
394586018
431985922
394586018
357186114
394586018
431985922
469385826
506785730
469385826
431985922
394586018
357186114
319786210
...

result:

ok 71356 lines

Test #44:

score: 4
Accepted
time: 141ms
memory: 13172kb

input:

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

output:

913758140
928668562
913758140
898847718
883937296
869026874
883937296
898847718
913758140
928668562
913758140
898847718
883937296
898847718
913758140
928668562
913758140
898847718
913758140
928668562
943578984
928668562
913758140
928668562
913758140
898847718
883937296
869026874
883937296
898847718
...

result:

ok 100002 lines

Test #45:

score: 4
Accepted
time: 113ms
memory: 13104kb

input:

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

output:

152530276
137619854
122709432
107799010
92888588
77978166
63067744
48157322
33246900
18336478
3426056
988517656
973607234
958696812
943786390
928875968
913965546
899055124
884144702
869234280
854323858
839413436
824503014
809592592
794682170
779771748
764861326
749950904
735040482
720130060
70521963...

result:

ok 100002 lines

Test #46:

score: 4
Accepted
time: 107ms
memory: 13144kb

input:

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

output:

14910422
29820844
44731266
59641688
74552110
89462532
104372954
119283376
134193798
149104220
164014642
178925064
193835486
208745908
223656330
238566752
253477174
268387596
283298018
298208440
313118862
328029284
342939706
357850128
372760550
387670972
402581394
417491816
432402238
447312660
462223...

result:

ok 100002 lines

Subtask #5:

score: 12
Accepted

Dependency #4:

100%
Accepted

Test #47:

score: 12
Accepted
time: 112ms
memory: 8176kb

input:

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

output:

105182172
904826008
249436868
17023698
882566410
487194958
692003610
262795534
589599284
280604666
916403034
926198420
674194478
705362276
937775446
700017356
700017356
485413318
981407456
376776886
750775926
498771984
502335264
158609568
953802938
851398612
916403034
392804378
552199380
996206
7765...

result:

ok 80874 lines

Test #48:

score: 12
Accepted
time: 163ms
memory: 13104kb

input:

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

output:

987306502
479348406
404796296
600639278
987306502
690101810
599635530
420710466
657269722
880926052
746732254
345154608
59849094
238774158
419706718
237770410
882933548
596624286
852108956
551893020
193039144
641355552
924653570
551893020
87662442
115475790
803362698
86658694
968381088
28020754
3888...

result:

ok 100002 lines

Test #49:

score: 12
Accepted
time: 165ms
memory: 13196kb

input:

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

output:

583721360
598631782
568810938
553900516
538990094
538990094
568810938
598631782
538990094
524079672
524079672
613542204
598631782
613542204
628452626
583721360
568810938
583721360
583721360
598631782
628452626
568810938
524079672
643363048
583721360
568810938
568810938
643363048
524079672
583721360
...

result:

ok 100002 lines

Test #50:

score: 12
Accepted
time: 105ms
memory: 13120kb

input:

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

output:

106587856
60852842
91677434
105584108
61856590
150315374
17125324
150315374
61856590
60852842
2214902
45942420
91677434
105584108
76767012
75763264
76767012
90673686
76767012
165225796
32035746
150315374
46946168
150315374
136408700
120494530
46946168
75763264
91677434
105584108
46946168
90673686
76...

result:

ok 100002 lines

Test #51:

score: 12
Accepted
time: 25ms
memory: 4228kb

input:

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

output:

134861748
303006848
798573570
283689758
183944440
847656262
381855142
500917550
807442148
728593854
936953068
441386346
490469038
570897266
262792734
966718670
362538052
996484272
15799340
362538052
45564942
500917550
866973352
600662868
828339172
858104774
907187466
817890660
590214356
303006848
27...

result:

ok 50568 lines

Test #52:

score: 12
Accepted
time: 82ms
memory: 4232kb

input:

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

output:

603631736
197613152
784946490
375602856
512420184
601415036
507986784
195396452
789379890
650345862
560242660
421208632
283282954
830552266
192071402
325563680
282174604
917330418
237677178
967369594
558025960
466814408
12973348
829443916
604740086
192071402
737124014
284391304
422316982
832768966
7...

result:

ok 100002 lines

Test #53:

score: 12
Accepted
time: 71ms
memory: 4152kb

input:

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

output:

148682326
148682326
784946490
466814408
148682326
784946490
784946490
148682326
148682326
512420184
739340714
57470774
57470774
57470774
421208632
830552266
148682326
194288102
512420184
830552266
512420184
512420184
239893878
921763818
876158042
558025960
148682326
876158042
194288102
512420184
421...

result:

ok 100002 lines

Test #54:

score: 12
Accepted
time: 47ms
memory: 4276kb

input:

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

output:

783838140
786054840
101968200
467922758
465706058
740449064
56362424
104184900
101968200
467922758
465706058
104184900
783838140
467922758
147573976
831660616
511311834
786054840
101968200
831660616
465706058
149790676
829443916
831660616
147573976
467922758
465706058
149790676
465706058
149790676
1...

result:

ok 100002 lines

Subtask #6:

score: 0
Time Limit Exceeded

Dependency #2:

100%
Accepted

Test #55:

score: 0
Time Limit Exceeded

input:

98261 98262
-1 0 0 1 2 2 4 5 3 8 6 6 1 10 13 10 9 5 12 11 18 17 20 4 18 19 24 11 26 27 24 29 17 29 25 34 7 7 13 21 16 9 23 38 33 25 28 21 37 48 40 46 43 38 49 27 41 22 42 39 58 36 56 32 42 61 22 30 36 47 68 67 59 66 58 23 3 52 39 44 12 8 51 26 74 76 81 65 53 19 59 90 20 83 54 90 77 37 70 67 68 48 73...

output:

732332002
281856764
14589944
411925198
494975700
394036962
773421578
775146066
4883078
260203704
903670862
346009340
587339956
274764376
460788066
389167006
366495594
540344200
552587736
827184842
811178920
435730860
31164648
948570022
596481960
285872536
249124126
542862090
457661798
194120298
6299...

result:


Subtask #7:

score: 0
Time Limit Exceeded

Dependency #3:

100%
Accepted

Test #61:

score: 0
Time Limit Exceeded

input:

2996 2704
-1 0 0 1 1 4 0 1 5 8 5 7 1 12 7 6 12 16 12 7 6 8 4 6 10 21 4 15 27 0 22 12 6 4 16 33 32 18 29 16 32 13 26 18 14 2 12 46 17 1 32 33 26 9 4 39 11 38 51 12 16 48 4 26 13 54 38 46 67 53 67 61 49 17 46 59 70 0 50 29 3 79 6 59 54 82 79 82 39 83 47 62 71 77 93 88 40 85 72 39 61 83 81 89 13 70 44 ...

output:

196037954
353332532
474467362
266572792
133541752
53461032
660114606
850761148
477663050
123824756
363114082
872464786
443857902
566147860
425391966
615113190
557952372
492810162
46040422
829723178
734786500
77970070
304364056
421827402
410653676
699128748
604978864
33254594
555442082
407003562
1477...

result:


Subtask #8:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

100%
Accepted

Dependency #3:

100%
Accepted

Dependency #4:

100%
Accepted

Dependency #5:

100%
Accepted

Dependency #6:

0%