QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#725419#5117. Find MaximumbhscerWA 1ms3652kbC++171.4kb2024-11-08 17:36:362024-11-08 17:36:38

Judging History

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

  • [2024-11-08 17:36:38]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3652kb
  • [2024-11-08 17:36:36]
  • 提交

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'