답안 #1033126

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1033126 2024-07-24T13:07:49 Z goodspeed0208 Colors (BOI20_colors) C++14
0 / 100
1 ms 344 KB
#include<bits/stdc++.h>
using namespace std;
 
signed main() {
	int n;
	cin >> n;
	set<int>st;
	
	int c;
	if (n == 2) {
		cout << "? 1" << endl; cin >> c;
		cout << "? 2" << endl; cin >> c;
		if (c == 1) cout << "= 1" << endl;
		else cout << "= 2" << endl;
		return 0;
	} else if (n == 3) {
		cout << "? 2" << endl; cin >> c;
		cout << "? 3" << endl; cin >> c;
		if (c == 1) cout << "= 1" << endl;
		else {
			cout << "? 1" << endl; cin >> c;
			if (c == 1) cout << "= 2" << endl;
			else cout << "= 3" << endl;
		}
		return 0;
		
	}
	
	int l = 3, r = n+2, t = 0, ans = n, end = 0;
	if (n <= 32) {
		l = 1, r = n, t = 1;
		cout << "? " << 1 << endl; cin >> c;
		while (ans > 1) {
			if (t) {
				r--;
				assert(st.find(r) == st.end());
				cout << "? " << r << endl;
			} else {
				l++;
				assert(st.find(l) == st.end());
				cout << "? " << l << endl;
			}
			t ^= 1;
			cin >> c;
			if (c == 1) ans = r - l;
			else break;
		}
		cout << "= " << ans << endl;
		return 0;
	}
	cout << "? " << l << "\n"; st.insert(l);
	cin >> c;
	while (r - l > 4) {
		if (t) {
			l += 4;
			assert(st.find(l) == st.end());
			cout << "? " << l << endl; st.insert(l);
		} else {
			r -= 4;
			assert(st.find(r) == st.end());
			cout << "? " << r << endl; st.insert(r);
		}
		cin >> c;
		if (c == 0) break;
		else {
			ans = min(ans, r - l);
			if (ans <= 4) break;
		}
		t ^= 1;
	}
	if (c == 1) {
		while (ans > 1) {
			if (t) {
				r--;
				assert(st.find(r) == st.end());
				cout << "? " << r << endl;
			} else {
				l++;
				assert(st.find(l) == st.end());
				cout << "? " << l << endl;
			}
			t ^= 1;
			cin >> c;
			if (c == 1) ans = r - l;
			else break;
		}
		cout << "= " << ans << endl;
		return 0;
	}
	while (c == 0) {
		if (t) {
			r++;
			assert(st.find(r) == st.end());
			cout << "? " << r << endl; st.insert(r);
		} else {
			l--;
			assert(st.find(l) == st.end());
			cout << "? " << l << endl; st.insert(l);
		}
		t ^= 1;
		cin >> c;
		if (c == 1) {
			ans = min(ans, r - l);
			end = 1;
		}
		if (c == 0 && (r - l == ans-1)) {
			end = 1;
			break;
		}
	}
	cout << "= " << ans << endl;
}
 

Compilation message

Colors.cpp: In function 'int main()':
Colors.cpp:29:38: warning: variable 'end' set but not used [-Wunused-but-set-variable]
   29 |  int l = 3, r = n+2, t = 0, ans = n, end = 0;
      |                                      ^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB OK (4 queries)
2 Correct 0 ms 344 KB OK (3 queries)
3 Correct 0 ms 344 KB OK (9 queries)
4 Correct 1 ms 344 KB OK (25 queries)
5 Correct 0 ms 344 KB OK (12 queries)
6 Correct 0 ms 344 KB OK (8 queries)
7 Correct 0 ms 344 KB OK (7 queries)
8 Correct 0 ms 344 KB OK (6 queries)
9 Correct 0 ms 344 KB OK (5 queries)
10 Correct 0 ms 344 KB OK (10 queries)
11 Correct 0 ms 344 KB OK (3 queries)
12 Correct 0 ms 344 KB OK (4 queries)
13 Correct 0 ms 344 KB OK (7 queries)
14 Correct 0 ms 344 KB OK (8 queries)
15 Correct 0 ms 344 KB OK (7 queries)
16 Correct 0 ms 344 KB OK (10 queries)
17 Correct 0 ms 344 KB OK (6 queries)
18 Correct 0 ms 344 KB OK (8 queries)
19 Incorrect 0 ms 340 KB Wrong guess
20 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB OK (4 queries)
2 Correct 0 ms 344 KB OK (3 queries)
3 Correct 0 ms 344 KB OK (9 queries)
4 Correct 1 ms 344 KB OK (25 queries)
5 Correct 0 ms 344 KB OK (12 queries)
6 Correct 0 ms 344 KB OK (8 queries)
7 Correct 0 ms 344 KB OK (7 queries)
8 Correct 0 ms 344 KB OK (6 queries)
9 Correct 0 ms 344 KB OK (5 queries)
10 Correct 0 ms 344 KB OK (10 queries)
11 Correct 0 ms 344 KB OK (3 queries)
12 Correct 0 ms 344 KB OK (4 queries)
13 Correct 0 ms 344 KB OK (7 queries)
14 Correct 0 ms 344 KB OK (8 queries)
15 Correct 0 ms 344 KB OK (7 queries)
16 Correct 0 ms 344 KB OK (10 queries)
17 Correct 0 ms 344 KB OK (6 queries)
18 Correct 0 ms 344 KB OK (8 queries)
19 Incorrect 0 ms 340 KB Wrong guess
20 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB OK (4 queries)
2 Correct 0 ms 344 KB OK (3 queries)
3 Correct 0 ms 344 KB OK (9 queries)
4 Correct 1 ms 344 KB OK (25 queries)
5 Correct 0 ms 344 KB OK (12 queries)
6 Correct 0 ms 344 KB OK (8 queries)
7 Correct 0 ms 344 KB OK (7 queries)
8 Correct 0 ms 344 KB OK (6 queries)
9 Correct 0 ms 344 KB OK (5 queries)
10 Correct 0 ms 344 KB OK (10 queries)
11 Correct 0 ms 344 KB OK (3 queries)
12 Correct 0 ms 344 KB OK (4 queries)
13 Correct 0 ms 344 KB OK (7 queries)
14 Correct 0 ms 344 KB OK (8 queries)
15 Correct 0 ms 344 KB OK (7 queries)
16 Correct 0 ms 344 KB OK (10 queries)
17 Correct 0 ms 344 KB OK (6 queries)
18 Correct 0 ms 344 KB OK (8 queries)
19 Incorrect 0 ms 340 KB Wrong guess
20 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB OK (4 queries)
2 Correct 0 ms 344 KB OK (3 queries)
3 Correct 0 ms 344 KB OK (9 queries)
4 Correct 1 ms 344 KB OK (25 queries)
5 Correct 0 ms 344 KB OK (12 queries)
6 Correct 0 ms 344 KB OK (8 queries)
7 Correct 0 ms 344 KB OK (7 queries)
8 Correct 0 ms 344 KB OK (6 queries)
9 Correct 0 ms 344 KB OK (5 queries)
10 Correct 0 ms 344 KB OK (10 queries)
11 Correct 0 ms 344 KB OK (3 queries)
12 Correct 0 ms 344 KB OK (4 queries)
13 Correct 0 ms 344 KB OK (7 queries)
14 Correct 0 ms 344 KB OK (8 queries)
15 Correct 0 ms 344 KB OK (7 queries)
16 Correct 0 ms 344 KB OK (10 queries)
17 Correct 0 ms 344 KB OK (6 queries)
18 Correct 0 ms 344 KB OK (8 queries)
19 Incorrect 0 ms 340 KB Wrong guess
20 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB OK (4 queries)
2 Correct 0 ms 344 KB OK (3 queries)
3 Correct 0 ms 344 KB OK (9 queries)
4 Correct 1 ms 344 KB OK (25 queries)
5 Correct 0 ms 344 KB OK (12 queries)
6 Correct 0 ms 344 KB OK (8 queries)
7 Correct 0 ms 344 KB OK (7 queries)
8 Correct 0 ms 344 KB OK (6 queries)
9 Correct 0 ms 344 KB OK (5 queries)
10 Correct 0 ms 344 KB OK (10 queries)
11 Correct 0 ms 344 KB OK (3 queries)
12 Correct 0 ms 344 KB OK (4 queries)
13 Correct 0 ms 344 KB OK (7 queries)
14 Correct 0 ms 344 KB OK (8 queries)
15 Correct 0 ms 344 KB OK (7 queries)
16 Correct 0 ms 344 KB OK (10 queries)
17 Correct 0 ms 344 KB OK (6 queries)
18 Correct 0 ms 344 KB OK (8 queries)
19 Incorrect 0 ms 340 KB Wrong guess
20 Halted 0 ms 0 KB -