QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#732778#9519. Build a ComputerCorycle#AC ✓1ms3720kbC++203.0kb2024-11-10 15:52:372024-11-10 15:52:41

Judging History

This is the latest submission verdict.

  • [2024-11-10 15:52:41]
  • Judged
  • Verdict: AC
  • Time: 1ms
  • Memory: 3720kb
  • [2024-11-10 15:52:37]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;
#define int long long

int fuck = 1;

class node
{
public:
    node* l;
    node* r;
    int id;
    node()
    {
        l=r=nullptr;
        id = ++fuck;
    }
    node(int f)
    {
        l=r=nullptr;
        id = f;
    }
};

vector<node*> T;

const int inf = (1ll<<61)-1;

node* solve(int l,int r,int bit,bool sig=false)
{
    node* tmp;
    if(sig) tmp = new node(2);
    else tmp = new node();

    int L = (bool)(l&(1ll<<bit));
    int R = (bool)(r&(1ll<<bit));


    if(bit==0)
    {
        if(L==R)
        {
            if(L)
            {
                tmp->r = T[90];
                return tmp;
            }
            else
            {
                tmp->l = T[90];
                return tmp;
            }
        }
        else
        {
            tmp->l = tmp->r = T[90];
            return tmp;
        }
    }

    if(L==R)
    {
        if(L)
        {
            tmp->r = solve(l,r,bit-1);
        }
        else
        {
            tmp->l = solve(l,r,bit-1);
        }
    }
    else if(r==inf)
    {
        tmp->l = solve(l,inf,bit-1);
        tmp->r = T[bit];
    }
    else if(l==0)
    {
        tmp->r = solve(0,r,bit-1);
        tmp->l = T[bit];
    }
    else
    {
        tmp->l = solve(l,inf,bit-1);
        tmp->r = solve(0,r,bit-1);
    }

    return tmp;

}

vector<pair<int,int> > vt[100000];

int mxn = 0;

void dfs(node* x)
{
    if(x->id!=10090&&x->id>=10000)
    {
        mxn = max(mxn,x->id-10000);
    }
    if(x->l!=nullptr)
    {
        vt[x->id].emplace_back(x->l->id,0);
        dfs(x->l);
    }
    if(x->r!=nullptr)
    {
        vt[x->id].emplace_back(x->r->id,1);
        dfs(x->r);
    }
}

int tid(int x)
{
    if(x==10090||x==10000) return 1;
    if(x>=10000) return fuck + x - 10000;
    return x;
}

int highbit(int x)
{
    for(int i=60;i>=0;--i)
    {
        if(x&(1ll<<i))
        {
            return i;
        }
    }
}

signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0); 
    int l,r;
    cin>>l>>r;

    for(int i=0;i<=100;++i) T.push_back(new node(i+1e4));

    int ll = highbit(l);
    int rr = highbit(r);

    if(ll==rr)
    {
        node* ans = solve(l,r,ll);
        dfs(ans);
    }
    else
    {
        node* ans1 = solve(l,inf,ll);
        node* ans3 = solve(0,r^(1ll<<rr),rr-1);
        node* ans2 = new node(2);
        ans2->r = ans3;
        dfs(ans1);
        dfs(ans2);

        for(int i=ll+1;i<rr;++i)
        {
            vt[2].emplace_back(10000+i,1);
            mxn=max(mxn,i);
        }
    }

    cout<<fuck+mxn<<"\n";

    cout<<"0\n";

    for(int i=2;i<=fuck;++i)
    {
        cout<<vt[i].size();
        for(auto i:vt[i])
        {
            cout<<" "<<tid(i.first)<<" "<<i.second;
        }
        cout<<"\n";
    }

    for(int i=1;i<=mxn;++i)
    {
        cout<<"2 ";
        cout<<tid(10000+i-1)<<" 0 "<<tid(10000+i-1)<<" 1\n";
    }


}

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3620kb

input:

5 7

output:

5
0
1 3 1
2 4 0 5 1
1 1 1
2 1 0 1 1

result:

ok ok

Test #2:

score: 0
Accepted
time: 1ms
memory: 3568kb

input:

10 27

output:

12
0
2 3 1 6 1
2 4 0 11 1
1 5 1
2 1 0 1 1
2 12 0 7 1
1 8 0
2 10 0 9 1
2 1 0 1 1
2 1 0 1 1
2 10 0 10 1
2 11 0 11 1

result:

ok ok

Test #3:

score: 0
Accepted
time: 1ms
memory: 3648kb

input:

5 13

output:

9
0
2 3 1 5 1
2 4 0 8 1
1 1 1
2 9 0 6 1
1 7 0
2 1 0 1 1
2 1 0 1 1
2 8 0 8 1

result:

ok ok

Test #4:

score: 0
Accepted
time: 0ms
memory: 3588kb

input:

1 1000000

output:

39
0
20 1 1 3 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1
2 39 0 4 1
2 38 0 5 1
2 37 0 6 1
1 7 0
2 35 0 8 1
1 9 0
1 10 0
1 11 0
1 12 0
2 30 0 13 1
1 14 0
1 15 0
2 27 0 16 1
1 17 0
1 18 0
1 19 0
1 20 0
1 21 0
1 1 0
2 1 0 1 1
2 22 0 22 1
2 23 0 23 1
2 24...

result:

ok ok

Test #5:

score: 0
Accepted
time: 1ms
memory: 3632kb

input:

1 1

output:

2
0
1 1 1

result:

ok ok

Test #6:

score: 0
Accepted
time: 1ms
memory: 3716kb

input:

7 9

output:

7
0
2 3 1 5 1
1 4 1
1 1 1
1 6 0
1 7 0
2 1 0 1 1

result:

ok ok

Test #7:

score: 0
Accepted
time: 1ms
memory: 3640kb

input:

3 7

output:

6
0
2 3 1 4 1
1 1 1
2 6 0 5 1
2 1 0 1 1
2 1 0 1 1

result:

ok ok

Test #8:

score: 0
Accepted
time: 1ms
memory: 3700kb

input:

1 5

output:

5
0
3 1 1 3 1 5 1
1 4 0
2 1 0 1 1
2 1 0 1 1

result:

ok ok

Test #9:

score: 0
Accepted
time: 1ms
memory: 3564kb

input:

1 4

output:

5
0
3 1 1 3 1 5 1
1 4 0
1 1 0
2 1 0 1 1

result:

ok ok

Test #10:

score: 0
Accepted
time: 1ms
memory: 3624kb

input:

8 9

output:

5
0
1 3 1
1 4 0
1 5 0
2 1 0 1 1

result:

ok ok

Test #11:

score: 0
Accepted
time: 1ms
memory: 3640kb

input:

7 51

output:

13
0
4 3 1 5 1 12 1 13 1
1 4 1
1 1 1
2 13 0 6 1
1 7 0
1 8 0
2 10 0 9 1
2 1 0 1 1
2 1 0 1 1
2 10 0 10 1
2 11 0 11 1
2 12 0 12 1

result:

ok ok

Test #12:

score: 0
Accepted
time: 1ms
memory: 3696kb

input:

51 79

output:

16
0
2 3 1 8 1
1 4 1
2 5 0 16 1
2 6 0 15 1
1 7 1
1 1 1
1 9 0
1 10 0
2 16 0 11 1
2 15 0 12 1
2 14 0 13 1
2 1 0 1 1
2 1 0 1 1
2 14 0 14 1
2 15 0 15 1

result:

ok ok

Test #13:

score: 0
Accepted
time: 1ms
memory: 3652kb

input:

92 99

output:

14
0
1 3 1
2 4 0 9 1
1 5 1
1 6 1
1 7 1
2 8 0 14 1
2 1 0 1 1
1 10 0
1 11 0
1 12 0
2 14 0 13 1
2 1 0 1 1
2 1 0 1 1

result:

ok ok

Test #14:

score: 0
Accepted
time: 1ms
memory: 3556kb

input:

27 36

output:

13
0
2 3 1 7 1
1 4 1
2 5 0 13 1
1 6 1
1 1 1
1 8 0
1 9 0
2 13 0 10 1
1 11 0
1 1 0
2 1 0 1 1
2 12 0 12 1

result:

ok ok

Test #15:

score: 0
Accepted
time: 1ms
memory: 3640kb

input:

55 84

output:

17
0
2 3 1 8 1
1 4 1
2 5 0 16 1
1 6 1
1 7 1
1 1 1
1 9 0
2 17 0 10 1
1 11 0
2 15 0 12 1
1 13 0
1 1 0
2 1 0 1 1
2 14 0 14 1
2 15 0 15 1
2 16 0 16 1

result:

ok ok

Test #16:

score: 0
Accepted
time: 1ms
memory: 3628kb

input:

297208 929600

output:

57
0
2 3 1 21 1
2 4 0 56 1
2 5 0 55 1
1 6 1
2 7 0 53 1
2 8 0 52 1
2 9 0 51 1
1 10 1
2 11 0 49 1
2 12 0 48 1
2 13 0 47 1
1 14 1
1 15 1
1 16 1
1 17 1
1 18 1
2 19 0 41 1
2 20 0 40 1
2 1 0 1 1
2 57 0 22 1
2 56 0 23 1
1 24 0
1 25 0
1 26 0
2 52 0 27 1
1 28 0
2 50 0 29 1
2 49 0 30 1
2 48 0 31 1
2 47 0 32 1...

result:

ok ok

Test #17:

score: 0
Accepted
time: 1ms
memory: 3596kb

input:

45728 589156

output:

54
0
5 3 1 18 1 52 1 53 1 54 1
2 4 0 50 1
1 5 1
1 6 1
2 7 0 47 1
2 8 0 46 1
1 9 1
2 10 0 44 1
1 11 1
2 12 0 42 1
1 13 1
2 14 0 40 1
2 15 0 39 1
2 16 0 38 1
2 17 0 37 1
2 1 0 1 1
1 19 0
1 20 0
1 21 0
2 51 0 22 1
2 50 0 23 1
2 49 0 24 1
2 48 0 25 1
2 47 0 26 1
2 46 0 27 1
1 28 0
2 44 0 29 1
1 30 0
2 4...

result:

ok ok

Test #18:

score: 0
Accepted
time: 1ms
memory: 3648kb

input:

129152 138000

output:

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

result:

ok ok

Test #19:

score: 0
Accepted
time: 1ms
memory: 3644kb

input:

245280 654141

output:

56
0
3 3 1 20 1 56 1
1 4 1
1 5 1
2 6 0 52 1
1 7 1
1 8 1
1 9 1
1 10 1
1 11 1
2 12 0 46 1
2 13 0 45 1
2 14 0 44 1
1 15 1
2 16 0 42 1
2 17 0 41 1
2 18 0 40 1
2 19 0 39 1
2 1 0 1 1
1 21 0
1 22 0
2 54 0 23 1
2 53 0 24 1
2 52 0 25 1
2 51 0 26 1
2 50 0 27 1
2 49 0 28 1
1 29 0
2 47 0 30 1
2 46 0 31 1
1 32 0...

result:

ok ok

Test #20:

score: 0
Accepted
time: 0ms
memory: 3592kb

input:

202985 296000

output:

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

result:

ok ok

Test #21:

score: 0
Accepted
time: 1ms
memory: 3660kb

input:

438671 951305

output:

57
0
2 3 1 21 1
1 4 1
2 5 0 55 1
1 6 1
2 7 0 53 1
1 8 1
1 9 1
2 10 0 50 1
2 11 0 49 1
2 12 0 48 1
1 13 1
1 14 1
2 15 0 45 1
2 16 0 44 1
2 17 0 43 1
1 18 1
1 19 1
1 20 1
1 1 1
2 57 0 22 1
2 56 0 23 1
1 24 0
2 54 0 25 1
1 26 0
1 27 0
1 28 0
1 29 0
2 49 0 30 1
1 31 0
1 32 0
1 33 0
1 34 0
1 35 0
1 36 0
...

result:

ok ok

Test #22:

score: 0
Accepted
time: 0ms
memory: 3720kb

input:

425249 739633

output:

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

result:

ok ok

Test #23:

score: 0
Accepted
time: 1ms
memory: 3660kb

input:

551207 961718

output:

56
0
1 3 1
2 4 0 22 1
2 5 0 56 1
2 6 0 55 1
2 7 0 54 1
1 8 1
1 9 1
2 10 0 51 1
1 11 1
2 12 0 49 1
2 13 0 48 1
1 14 1
2 15 0 46 1
2 16 0 45 1
1 17 1
2 18 0 43 1
2 19 0 42 1
1 20 1
1 21 1
1 1 1
2 56 0 23 1
1 24 0
2 54 0 25 1
1 26 0
2 52 0 27 1
1 28 0
2 50 0 29 1
2 49 0 30 1
1 31 0
1 32 0
2 46 0 33 1
1...

result:

ok ok

Test #24:

score: 0
Accepted
time: 1ms
memory: 3568kb

input:

114691 598186

output:

55
0
4 3 1 19 1 54 1 55 1
1 4 1
1 5 1
2 6 0 50 1
2 7 0 49 1
2 8 0 48 1
2 9 0 47 1
2 10 0 46 1
2 11 0 45 1
2 12 0 44 1
2 13 0 43 1
2 14 0 42 1
2 15 0 41 1
2 16 0 40 1
2 17 0 39 1
1 18 1
1 1 1
1 20 0
1 21 0
2 53 0 22 1
1 23 0
1 24 0
2 50 0 25 1
1 26 0
1 27 0
1 28 0
1 29 0
1 30 0
2 44 0 31 1
1 32 0
2 4...

result:

ok ok

Test #25:

score: 0
Accepted
time: 1ms
memory: 3632kb

input:

234654 253129

output:

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

result:

ok ok

Test #26:

score: 0
Accepted
time: 0ms
memory: 3644kb

input:

554090 608599

output:

52
0
1 3 1
1 4 0
1 5 0
2 6 0 22 1
2 7 0 52 1
1 8 1
1 9 1
1 10 1
2 11 0 48 1
1 12 1
2 13 0 46 1
2 14 0 45 1
2 15 0 44 1
1 16 1
1 17 1
2 18 0 41 1
1 19 1
2 20 0 39 1
1 21 1
2 1 0 1 1
1 23 0
2 51 0 24 1
1 25 0
1 26 0
2 48 0 27 1
1 28 0
1 29 0
2 45 0 30 1
1 31 0
2 43 0 32 1
1 33 0
2 41 0 34 1
1 35 0
2 3...

result:

ok ok

Extra Test:

score: 0
Extra Test Passed