QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#725419 | #5117. Find Maximum | bhscer | WA | 1ms | 3652kb | C++17 | 1.4kb | 2024-11-08 17:36:36 | 2024-11-08 17:36:38 |
Judging History
answer
#include <bits/stdc++.h>
#define int long long
#define fadd(a,b,c) for (int a=b;a<=c;a++)
#define fsub(a,b,c) for (int a=b;a>=c;a--)
#define F first
#define S second
#define CYes cout << "Yes\n"
#define CNo cout << "No\n"
#define CYES cout << "YES\n"
#define CNO cout << "NO\n"
#define println(a) cout << (a) << '\n'
using namespace std;
typedef long long LL;
typedef pair<int,int> PII;
void fastIO(){ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);}
class bhscer {
public:
template<typename FIRST, typename ...PACK> static void debug(FIRST first, PACK... params) { std::cout<< first <<' '; debug(params...);}
template<typename T> static void debug(T end) { std::cout << end << std::endl; }
};
const int N = 5e5;
void solve() {
int l,r; cin >> l >> r;
int b1[64] = {0};
int b2[64] = {0};
int lb1 = 0, lb2 = 0;
do {
b1[++ lb1] = l % 3;
l /= 3;
} while (l);
int ans = 0;
do {
ans += r%3 + 1;
b2[++ lb2] = r % 3;
r /= 3;
} while (r);
ans = max(ans, lb2);
if (lb1 != lb2) {
ans = max(ans, (lb1-1) * 3);
lb1 = lb2;
for (int i=1;i<lb1;i++) b1[i] = 0;
b1[lb1] = 1;
}
int sum = lb2;
for (int i=lb2;i>=1;i--) {
if (b1[i] < b2[i]) {
ans = max(ans, sum + (b2[i]-1) + (i-1)*2);
break;
}
sum += b2[i];
}
println(ans);
}
signed main() {
fastIO();
int _ = 1; cin >> _;
while (_--) {
solve();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3652kb
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: -100
Wrong Answer
time: 1ms
memory: 3628kb
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 4 5 6 6 6 7 7 7 8 8 8 8 8 8 8 8 8 9 5 6 7 7 7 8 8 8 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 6 7 8 8 8 9 9 9 10 10 10 10 10 10 10 10 10 11 11 11 3 3 4 5 5 5 6 4 5 6 6 6 7 7 7 8 8 8 8 8 8 8 8 8 9 5...
result:
wrong answer 9th numbers differ - expected: '6', found: '4'