Submission #8583931
Source Code Expand
#include <iostream>
#include <algorithm>
#include <numeric>
#include <vector>
#include <string>
enum Color { red,
blue };
Color query(const std::vector<int>& v) {
std::cout << '?';
for (auto& x : v) {
std::cout << ' ' << x + 1;
}
std::cout << std::endl;
std::string s;
std::cin >> s;
if (s == "Red") return red;
if (s == "Blue") return blue;
std::exit(0);
}
void answer(const std::string& s) {
std::cout << '!' << ' ' << s << std::endl;
std::exit(0);
}
int main() {
int n;
std::cin >> n;
std::vector<int> idx(n * 2);
std::iota(idx.begin(), idx.end(), 0);
auto rquery = [&](int l) {
// l < n
std::vector<int> v;
for (int i = 0; i < n; ++i) {
v.push_back(idx[l + i]);
}
return query(v);
};
Color c = rquery(0);
if (c == blue) {
std::rotate(idx.begin(), idx.begin() + n, idx.end());
}
// [0, n): red, [n, 2n): blue
int ok = 0, ng = n;
while (ng - ok > 1) {
int mid = (ok + ng) / 2;
c = rquery(mid);
(c == red ? ok : ng) = mid;
}
// [ok, ok + n): red, [ok + n, ok + 2n): blue
std::rotate(idx.begin(), idx.begin() + ok, idx.end());
// [0, n): red, [1, n]: blue
std::string preans(n * 2, '*');
preans[0] = 'R';
preans[n] = 'B';
for (int i = 1; i < n; ++i) {
std::vector<int> v{idx[0], idx[n]};
for (int j = 1; j < n; ++j) {
if (j == i) continue;
v.push_back(idx[j]);
}
c = query(v);
preans[i] = (c == red ? 'B' : 'R');
}
for (int i = 1; i < n; ++i) {
std::vector<int> v{idx[0], idx[n]};
for (int j = 1; j < n; ++j) {
if (j == i) continue;
v.push_back(idx[n + j]);
}
c = query(v);
preans[n + i] = (c == red ? 'B' : 'R');
}
std::string ans(n * 2, '*');
for (int i = 0; i < n * 2; ++i) {
ans[idx[i]] = preans[i];
}
answer(ans);
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - Majority of Balls |
| User | Tiramister |
| Language | C++14 (GCC 5.4.1) |
| Score | 800 |
| Code Size | 2043 Byte |
| Status | AC |
| Exec Time | 20 ms |
| Memory | 724 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 800 / 800 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt |
| All | in01.txt, in02.txt, in03.txt, in04.txt, in05.txt, in06.txt, in07.txt, in08.txt, in09.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, in36.txt, in37.txt, in38.txt, in39.txt, in40.txt, in41.txt, in42.txt, in43.txt, in44.txt, in45.txt, in46.txt, in47.txt, in48.txt, in49.txt, in50.txt, in51.txt, in52.txt, in53.txt, in54.txt, in55.txt, in56.txt, in57.txt, in58.txt, in59.txt, in60.txt, in61.txt, in62.txt, in63.txt, in64.txt, sample_01.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| in01.txt | AC | 3 ms | 600 KiB |
| in02.txt | AC | 3 ms | 696 KiB |
| in03.txt | AC | 3 ms | 720 KiB |
| in04.txt | AC | 3 ms | 724 KiB |
| in05.txt | AC | 3 ms | 720 KiB |
| in06.txt | AC | 3 ms | 656 KiB |
| in07.txt | AC | 3 ms | 652 KiB |
| in08.txt | AC | 3 ms | 720 KiB |
| in09.txt | AC | 3 ms | 724 KiB |
| in10.txt | AC | 3 ms | 720 KiB |
| in11.txt | AC | 3 ms | 720 KiB |
| in12.txt | AC | 3 ms | 724 KiB |
| in13.txt | AC | 3 ms | 696 KiB |
| in14.txt | AC | 3 ms | 720 KiB |
| in15.txt | AC | 3 ms | 652 KiB |
| in16.txt | AC | 3 ms | 720 KiB |
| in17.txt | AC | 3 ms | 720 KiB |
| in18.txt | AC | 3 ms | 720 KiB |
| in19.txt | AC | 3 ms | 720 KiB |
| in20.txt | AC | 3 ms | 720 KiB |
| in21.txt | AC | 3 ms | 720 KiB |
| in22.txt | AC | 3 ms | 720 KiB |
| in23.txt | AC | 19 ms | 716 KiB |
| in24.txt | AC | 18 ms | 716 KiB |
| in25.txt | AC | 18 ms | 720 KiB |
| in26.txt | AC | 18 ms | 720 KiB |
| in27.txt | AC | 18 ms | 588 KiB |
| in28.txt | AC | 18 ms | 692 KiB |
| in29.txt | AC | 18 ms | 720 KiB |
| in30.txt | AC | 18 ms | 592 KiB |
| in31.txt | AC | 20 ms | 660 KiB |
| in32.txt | AC | 20 ms | 720 KiB |
| in33.txt | AC | 18 ms | 608 KiB |
| in34.txt | AC | 18 ms | 720 KiB |
| in35.txt | AC | 18 ms | 720 KiB |
| in36.txt | AC | 19 ms | 720 KiB |
| in37.txt | AC | 19 ms | 716 KiB |
| in38.txt | AC | 18 ms | 596 KiB |
| in39.txt | AC | 18 ms | 720 KiB |
| in40.txt | AC | 18 ms | 592 KiB |
| in41.txt | AC | 18 ms | 592 KiB |
| in42.txt | AC | 18 ms | 720 KiB |
| in43.txt | AC | 18 ms | 720 KiB |
| in44.txt | AC | 18 ms | 720 KiB |
| in45.txt | AC | 18 ms | 720 KiB |
| in46.txt | AC | 19 ms | 720 KiB |
| in47.txt | AC | 19 ms | 596 KiB |
| in48.txt | AC | 19 ms | 720 KiB |
| in49.txt | AC | 18 ms | 648 KiB |
| in50.txt | AC | 19 ms | 720 KiB |
| in51.txt | AC | 19 ms | 720 KiB |
| in52.txt | AC | 18 ms | 720 KiB |
| in53.txt | AC | 18 ms | 720 KiB |
| in54.txt | AC | 18 ms | 596 KiB |
| in55.txt | AC | 18 ms | 716 KiB |
| in56.txt | AC | 20 ms | 720 KiB |
| in57.txt | AC | 18 ms | 692 KiB |
| in58.txt | AC | 19 ms | 720 KiB |
| in59.txt | AC | 4 ms | 720 KiB |
| in60.txt | AC | 4 ms | 652 KiB |
| in61.txt | AC | 5 ms | 724 KiB |
| in62.txt | AC | 7 ms | 720 KiB |
| in63.txt | AC | 11 ms | 592 KiB |
| in64.txt | AC | 16 ms | 648 KiB |
| sample_01.txt | AC | 3 ms | 720 KiB |