| Task: | Piiri |
| Sender: | vgtcross |
| Submission time: | 2025-01-18 13:50:19 +0200 |
| Language: | C++ (C++20) |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 14 |
| #2 | ACCEPTED | 12 |
| #3 | ACCEPTED | 26 |
| #4 | ACCEPTED | 48 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.02 s | 1, 2, 4 | details |
| #2 | ACCEPTED | 0.02 s | 1, 2, 4 | details |
| #3 | ACCEPTED | 0.02 s | 1, 2, 4 | details |
| #4 | ACCEPTED | 0.01 s | 1, 2, 4 | details |
| #5 | ACCEPTED | 0.02 s | 1, 2, 4 | details |
| #6 | ACCEPTED | 0.02 s | 1, 2, 4 | details |
| #7 | ACCEPTED | 0.01 s | 1, 2, 4 | details |
| #8 | ACCEPTED | 0.01 s | 1, 2, 4 | details |
| #9 | ACCEPTED | 0.02 s | 1, 2, 4 | details |
| #10 | ACCEPTED | 0.01 s | 2, 4 | details |
| #11 | ACCEPTED | 0.01 s | 2, 4 | details |
| #12 | ACCEPTED | 0.02 s | 2, 4 | details |
| #13 | ACCEPTED | 0.01 s | 2, 4 | details |
| #14 | ACCEPTED | 0.02 s | 2, 4 | details |
| #15 | ACCEPTED | 0.02 s | 2, 4 | details |
| #16 | ACCEPTED | 0.02 s | 2, 4 | details |
| #17 | ACCEPTED | 0.04 s | 3 | details |
| #18 | ACCEPTED | 0.04 s | 3 | details |
| #19 | ACCEPTED | 0.03 s | 3 | details |
| #20 | ACCEPTED | 0.02 s | 3 | details |
| #21 | ACCEPTED | 0.01 s | 3 | details |
| #22 | ACCEPTED | 0.11 s | 4 | details |
| #23 | ACCEPTED | 0.08 s | 4 | details |
| #24 | ACCEPTED | 0.07 s | 4 | details |
| #25 | ACCEPTED | 0.11 s | 4 | details |
| #26 | ACCEPTED | 0.03 s | 4 | details |
| #27 | ACCEPTED | 0.04 s | 4 | details |
| #28 | ACCEPTED | 0.06 s | 4 | details |
Code
#include <bits/stdc++.h>
#define debug(x) cout << #x << ": " << x << endl
#define fi first
#define se second
#define all(x) begin(x),end(x)
#define rall(x) rbegin(x),rend(x)
using namespace std;
using ll = long long;
string ask(string s) {
cout << "? " << s << endl;
string t;
cin >> t;
return t;
}
void find_fail(string s, string p) {
if (count(all(s), '1') < count(all(p), '1')) {
int j = 0;
while (true) {
while (s[j] == '1') ++j;
s[j] = '1';
string t = ask(s);
if (t == p) {
cout << "YES\n";
cout << s << '\n';
s[j] = '0';
cout << s << endl;
return;
}
p = t;
++j;
}
} else {
int j = 0;
while (true) {
while (s[j] == '0') ++j;
s[j] = '0';
string t = ask(s);
if (t == p) {
cout << "YES\n";
cout << s << '\n';
s[j] = '1';
cout << s << endl;
return;
}
p = t;
++j;
}
}
}
void solve() {
int n, m;
cin >> n >> m;
string s(n, '0');
vector<int> v(m, -1);
for (int i = 0; i < n; ++i) {
s[i] = '1';
string t = ask(s);
if (count(all(t), '1') != 1) {
find_fail(s, t);
return;
}
int j = t.find('1');
if (v[j] != -1) {
cout << "YES\n";
cout << s << '\n';
s[i] = '0';
s[v[j]] = '1';
cout << s << endl;
return;
}
v[j] = i;
s[i] = '0';
}
s = string(n, '1');
for (int i = 0; i < n; ++i) {
s[i] = '0';
string t = ask(s);
if (count(all(t), '0') != 1) {
find_fail(s, t);
return;
}
s[i] = '1';
}
cout << "NO\n";
}
int main() {
cin.tie(0) -> sync_with_stdio(0);
solve();
}Test details
Test 1
Group: 1, 2, 4
Verdict: ACCEPTED
| input |
|---|
| 2 2 NO 1 2 |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 2 2 ? 10 10 ? 01 01 ... |
Error:
1 1 100 0
Test 2
Group: 1, 2, 4
Verdict: ACCEPTED
| input |
|---|
| 2 2 YES 1 2 conj 2 1 1 |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 2 2 ? 10 10 ? 01 00 ... |
Error:
1 1 100 0
Test 3
Group: 1, 2, 4
Verdict: ACCEPTED
| input |
|---|
| 10 10 NO 6 2 1 8 3 9 4 10 5 7 |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 10 10 ? 1000000000 0010000000 ? 0100000000 0100000000 ... Truncated |
Error:
1 1 100 0
Test 4
Group: 1, 2, 4
Verdict: ACCEPTED
| input |
|---|
| 10 10 YES 6 10 2 3 9 8 4 5 7 1 disj 2 2 7 3 |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 10 10 ? 1000000000 0000000001 ? 0100000000 0010000000 ... Truncated |
Error:
1 1 100 0
Test 5
Group: 1, 2, 4
Verdict: ACCEPTED
| input |
|---|
| 10 10 YES 8 4 9 10 6 3 7 2 1 5 disj 1 5 2 9 1 4 3 |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 10 10 ? 1000000000 0000000010 ? 0100000000 0000000100 ... Truncated |
Error:
1 1 100 0
Test 6
Group: 1, 2, 4
Verdict: ACCEPTED
| input |
|---|
| 10 10 YES 8 6 2 4 10 5 7 9 1 3 disj 9 8 3 6 2 10 8 7 9 5 |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 10 10 ? 1000000000 0000000010 ? 0100000000 0010000000 ... Truncated |
Error:
1 1 100 0
Test 7
Group: 1, 2, 4
Verdict: ACCEPTED
| input |
|---|
| 10 10 YES 1 2 3 5 8 6 4 9 10 7 conj 4 2 8 10 |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 10 10 ? 1000000000 1000000000 ? 0100000000 0100000000 ... Truncated |
Error:
1 1 100 0
Test 8
Group: 1, 2, 4
Verdict: ACCEPTED
| input |
|---|
| 10 10 YES 9 8 3 2 10 6 1 4 5 7 conj 2 5 3 1 2 7 4 |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 10 10 ? 1000000000 0000001000 ? 0100000000 0001000000 ... Truncated |
Error:
1 1 100 0
Test 9
Group: 1, 2, 4
Verdict: ACCEPTED
| input |
|---|
| 10 10 YES 7 1 5 8 9 4 3 6 2 10 conj 4 8 9 6 3 5 1 10 7 4 |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 10 10 ? 1000000000 0100000000 ? 0100000000 0000000010 ... Truncated |
Error:
1 1 100 0
Test 10
Group: 2, 4
Verdict: ACCEPTED
| input |
|---|
| 30 30 NO 17 30 6 20 28 16 7 4 14 25 18 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 30 30 ? 1000000000000000000000000000... Truncated |
Error:
1 1 100 0
Test 11
Group: 2, 4
Verdict: ACCEPTED
| input |
|---|
| 30 30 YES 13 22 6 23 16 20 9 30 8 18 2 1... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 30 30 ? 1000000000000000000000000000... Truncated |
Error:
1 1 100 0
Test 12
Group: 2, 4
Verdict: ACCEPTED
| input |
|---|
| 30 30 YES 12 30 22 9 3 7 27 21 2 28 10 1... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 30 30 ? 1000000000000000000000000000... Truncated |
Error:
1 1 100 0
Test 13
Group: 2, 4
Verdict: ACCEPTED
| input |
|---|
| 30 30 YES 4 7 27 17 26 24 9 20 19 22 10 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 30 30 ? 1000000000000000000000000000... Truncated |
Error:
1 1 100 0
Test 14
Group: 2, 4
Verdict: ACCEPTED
| input |
|---|
| 30 30 YES 7 2 24 11 4 30 17 6 9 29 5 22 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 30 30 ? 1000000000000000000000000000... Truncated |
Error:
1 1 100 0
Test 15
Group: 2, 4
Verdict: ACCEPTED
| input |
|---|
| 30 30 YES 8 12 21 26 3 23 17 4 5 6 22 16... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 30 30 ? 1000000000000000000000000000... Truncated |
Error:
1 1 100 0
Test 16
Group: 2, 4
Verdict: ACCEPTED
| input |
|---|
| 30 30 YES 8 20 19 21 24 23 25 28 5 10 13... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 30 30 ? 1000000000000000000000000000... Truncated |
Error:
1 1 100 0
Test 17
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 1000 999 YES 122 260 455 752 587 951 433 81... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 1000 999 ? 1000000000000000000000000000... Truncated |
Error:
1 1 100 0
Test 18
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 1000 999 YES 593 999 981 107 187 851 19 574... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 1000 999 ? 1000000000000000000000000000... Truncated |
Error:
1 1 100 0
Test 19
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 1000 999 YES 99 213 558 569 343 613 593 85 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 1000 999 ? 1000000000000000000000000000... Truncated |
Error:
1 1 100 0
Test 20
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 1000 999 YES 60 15 857 450 862 173 675 384 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 1000 999 ? 1000000000000000000000000000... Truncated |
Error:
1 1 100 0
Test 21
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 3 2 YES 3 1 disj 1 2 2 1 |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 3 2 ? 100 01 ? 010 00 ... |
Error:
1 1 100 0
Test 22
Group: 4
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 NO 493 409 829 533 156 443 530 80... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 1000 1000 ? 1000000000000000000000000000... Truncated |
Error:
1 1 100 0
Test 23
Group: 4
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 YES 16 450 665 56 968 1 984 545 90... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 1000 1000 ? 1000000000000000000000000000... Truncated |
Error:
1 1 100 0
Test 24
Group: 4
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 YES 503 289 147 513 833 468 199 82... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 1000 1000 ? 1000000000000000000000000000... Truncated |
Error:
1 1 100 0
Test 25
Group: 4
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 YES 294 617 164 497 46 961 234 12 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 1000 1000 ? 1000000000000000000000000000... Truncated |
Error:
1 1 100 0
Test 26
Group: 4
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 YES 465 496 15 263 713 784 337 487... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 1000 1000 ? 1000000000000000000000000000... Truncated |
Error:
1 1 100 0
Test 27
Group: 4
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 YES 788 567 826 731 874 95 502 20 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 1000 1000 ? 1000000000000000000000000000... Truncated |
Error:
1 1 100 0
Test 28
Group: 4
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 YES 611 543 496 586 262 765 461 83... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 1000 1000 ? 1000000000000000000000000000... Truncated |
Error:
1 1 100 0
