QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#751056#5117. Find Maximumnahida_qaqWA 9ms3828kbC++231.4kb2024-11-15 16:53:372024-11-15 16:53:45

Judging History

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

  • [2024-11-15 16:53:45]
  • 评测
  • 测评结果:WA
  • 用时:9ms
  • 内存:3828kb
  • [2024-11-15 16:53:37]
  • 提交

answer

#include <bits/stdc++.h>
#define int long long
#define io ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define pb push_back
using namespace std;
const int N=1e6+5,mod1=1e9+7,mod2=998244353,inf=1e18;
typedef pair<int,int> pi;
int ll[100],rr[100];
void solve()
{
    int l,r;
    cin>>l>>r;
    int cnt=0;
    while(l)
    {
        int x=l%3;
        ll[cnt++]=x;
        l/=3;
    }
    cnt=0;
    while(r)
    {
        int x=r%3;
        rr[cnt++]=x;
        r/=3;
    }
    //cout<<cnt<<'\n';
    int ans=cnt;
    for(int i=cnt-1;i>=0;i--)ans+=rr[i];
    vector<int>q(cnt);
    int res=0;
    for(int i=cnt-1;i>=0;i--)
    {
        if(rr[i]==2||rr[i]==1)
        {
            q[i]=rr[i]-1;
            for(int j=0;j<i;j++)q[j]=2;
            int tmp=0;
            for(int j=cnt-1;j>=0;j--)
            {
                if(q[j]>ll[j])break;
                if(q[j]<ll[j])
                {
                    tmp=1;
                    break;
                }
            }
            int num=cnt;
            while(q[num-1]==0&&num)num--;
            if(!tmp)ans=max(ans,2*i+res+q[i]+num);
            res+=rr[i];
            //cout<<ans<<'\n';
        }
        q[i]=rr[i];
    }
    cout<<ans<<'\n';
}
signed main()
{
    io;
    int t=1;
    cin>>t;
    while(t--)
    {
        solve();
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3524kb

input:

10
1 2
1 3
1 4
1 5
2 3
2 4
2 5
3 4
3 5
4 5

output:

3
3
4
5
3
4
5
4
5
5

result:

ok 10 numbers

Test #2:

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

input:

5050
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
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 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 49
1 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60
1 61...

output:

2
3
3
4
5
5
5
6
6
6
6
6
6
7
7
7
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
3
3
4
5
5
5
6
6
6
6
6
6
7
7
7
8
8
8
8
8
8
8...

result:

ok 5050 numbers

Test #3:

score: -100
Wrong Answer
time: 9ms
memory: 3828kb

input:

10000
2924776299390853 348932224550662831
638290869233943020 897334616745111026
210780034220004669 279345354637770906
20574264013277469 387573622060864735
39441497975868873 806211034038773415
19845198891021950 243636832211738144
298454268109304380 988142879006387197
613847475002049291 86666797163210...

output:

110
112
109
110
112
108
113
112
110
107
109
113
110
75
111
111
109
67
111
113
72
76
113
112
111
110
73
73
75
110
83
79
108
111
113
109
111
110
108
70
78
113
110
110
110
111
110
107
111
111
109
107
112
71
110
79
112
109
78
112
76
77
73
73
73
75
110
75
113
66
113
112
112
110
110
111
111
112
77
113
113...

result:

wrong answer 14th numbers differ - expected: '111', found: '75'