QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#391945#5117. Find MaximumwdwWA 131ms3656kbC++201.2kb2024-04-16 22:18:482024-04-16 22:18:48

Judging History

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

  • [2024-04-16 22:18:48]
  • 评测
  • 测评结果:WA
  • 用时:131ms
  • 内存:3656kb
  • [2024-04-16 22:18:48]
  • 提交

answer

#include<bits/stdc++.h>
#define int long long
using namespace std;
using ll = long long;
using ld = double;
using i64 = int64_t;
const int N = 3e5+5;
const ll mod = 998244353;
const ll inf = 1e18+5;


int dfs(int x){
    if(x==0) return 1;
    if(x%3==0){
        int tmp=dfs(x/3)+1;
        return tmp;
    }else{
        int p=x%3;
        int tmp=dfs(x-p)+p;
        return tmp;
    }
}

void solve()
{
    int l,r;
    cin>>l>>r;
    int ans=0;
    int w=2,lx=1,f=1;
    int a1=1,a2=2,a3=1;
    while(lx<=r){
        if(lx>=l){
            ans=max(ans,w);
        }
        w++;
        if(f==1){
            lx+=a1;
            a1*=3;
            f++;
        }else if(f==2){
            lx+=a2;
            a2*=3;
            f++;
        }else{
            lx+=a3;
            a3*=3;
            f=1;
        }
    }
    for(int i=max(l,r-100);i<=r;i++){
        ans=max(ans,dfs(i));
    }

    cout<<ans<<'\n';

}
signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
//    cout<<fixed<<setprecision(12);
//    srand(time(NULL));

    int T=1;
    cin >> T;
    while(T--){
        solve();
    }
    return 0;
}

詳細信息

Test #1:

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

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: 2ms
memory: 3596kb

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: 131ms
memory: 3648kb

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
79
113
110
111
88
86
109
108
111
113
111
111
113
112
111
110
111
108
111
85
111
111
112
76
113
109
111
110
79
111
111
113
110
110
75
112
110
74
72
78
109
107
112
111
110
111
112
111
111
112
111
111
109
111
110
111
112
111
113
110
113
112
112
75
110
79
111
112
...

result:

wrong answer 11th numbers differ - expected: '109', found: '79'