QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#321668#7703. Base Hi-Lo Gameishmeal#TL 1ms3588kbC++23942b2024-02-05 05:12:042024-02-05 05:12:05

Judging History

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

  • [2024-02-05 05:12:05]
  • 评测
  • 测评结果:TL
  • 用时:1ms
  • 内存:3588kb
  • [2024-02-05 05:12:04]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
// 32

int b;
string s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

void run() {
	int d; cin >> d;
	vector<pair<int,int>> digits(d, {0,b});

	//for (int _ = 0; _ < (int)log2l(b)+2; _++) {
	while (1) {
		for (auto [l,r] : digits) cout << s[(l+r)/2];// assert((l+r)/2 < b);
		cout << endl;

		string t; cin >> t;
		if (t == "correct") return;
		//assert(t.size() == (unsigned)d);

		for (int i = 0; i < d; i++) {
			int m = (digits[i].first + digits[i].second) / 2;
			if (t[i] == '+') digits[i].first = m+1;
			else if (t[i] == '-') digits[i].second = m;
			else digits[i].first = m, digits[i].second = m+1;

			if (digits[i].first >= digits[i].second) {
				cout << "cheater" << endl;
				string t;
				cin >> t;
				assert(t == "correct");
				return;
			}
		}
	}
	assert(0);
}

int main() {
	cin.tie(0)->sync_with_stdio(0);

	int n; cin >> b >> n;
	while (n--) run();
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

10 2
5
----=
-=++=
==-==
correct
6
--++-+
=+-=-+
==-=-=
correct

output:

55555
22225
12445
12345
555555
228828
247819
246809

result:

ok correct (2 test cases)

Test #2:

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

input:

38 2
1
+
+
+
+
correct
3
---
+-=
--=
--=
--=
correct

output:

J
T
Y
a
b
JJJ
999
E49
C29
B19
A09

result:

ok correct (2 test cases)

Test #3:

score: -100
Time Limit Exceeded

input:

10 6
3
-++
--+
=-=
=-=
correct
3
-=+
-++
correct
5
++++=
+=--=
===-+
correct
4
----
====
++++
correct
4
++++
++++
====
correct
4
====
====
====
====
====

output:

555
288
179
169
cheater
555
258
cheater
55555
88885
98775
cheater
5555
2222
2222
cheater
5555
8888
9999
9999
5555
5555
5555
5555
5555
5555

result: