QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#780171#5117. Find MaximumLJY_ljyWA 1ms3828kbC++111.2kb2024-11-25 05:22:532024-11-25 05:22:53

Judging History

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

  • [2024-11-25 05:22:53]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3828kb
  • [2024-11-25 05:22:53]
  • 提交

answer

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

const int MAXN = 1010;

inline long long read() {
	long long x = 0, f = 1;
	char ch = getchar();
	while (!isdigit(ch)) {
		if (ch == '-') f = -1;
		ch = getchar();
	}
	while (isdigit(ch)) {
		x = x * 10 + ch - '0';
		ch = getchar();
	}
	return x * f;
}

long long l, r;
long long a[MAXN], b[MAXN], len1, len2;

int main() {
	long long t; t = read();
	while (t--) {
		l = read(); r = read();
		len1 = -1; len2 = -1;
		while (l) {
			len1++;
			a[len1] = l % 3;
			l /= 3;
		}
		while (r) {
			len2++;
			b[len2] = r % 3;
			r /= 3;
		}
		if (len1 != len2) {
			long long ans = 3 * len2;
			long long cnt = len2 + 1;
			for (int i = len2; i >= 0; i--) a[i] = (i == len2) ? 1 : 0;
			for (int i = len2; i >= 0; i--) {
				cnt += b[i];
				if (a[i] != b[i]) ans = max(ans, cnt - 1 + 2 * i);
			}	
			printf("%lld\n", max(ans, cnt));
		} else {
			long long ans = 0, cnt = len2 + 1;
			for (int i = len2; i >= 0; i--) {
				cnt += b[i];
				if (a[i] != b[i]) {
					ans = max(ans, cnt - 1 + 2 * i);
					for (int j = i - 1; j >= 0; j--)
						b[j] = 0;
				}
			}
			printf("%lld\n", max(ans, cnt));
		}
	}	
	return 0;
} 

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

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: 3736kb

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:

wrong answer 205th numbers differ - expected: '6', found: '5'