QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#669220 | #9484. Colored Complete Graph | Fei# | WA | 4ms | 3724kb | C++17 | 1.7kb | 2024-10-23 17:45:00 | 2024-10-23 17:45:01 |
Judging History
answer
#include<bits/stdc++.h>
using i64 = long long;
void solve() {
int n;
std::cin >> n;
std::set<int> st1, st2;// st1红,st2蓝
for (int i = 1; i <= n; i++) {
st1.insert(i);
st2.insert(i);
}
auto query = [&] (int x, int y) -> char {
std::cout << '?' << ' ' << x << ' ' << y << '\n';
char c;
std::cin >> c;
return c;
};
std::vector<std::pair<int, int> > e1, e2;
for (int i = 1; i < n; i++) {
if (query(i, i + 1) == 'R') {
st1.erase(i);
st1.erase(i + 1);
e1.emplace_back(i, i + 1);
}
else {
st2.erase(i);
st2.erase(i + 1);
e2.emplace_back(i, i + 1);
}
}
std::queue<int> q1, q2;
for (auto it : st1) {
q1.push(it);
}
for (auto it : st2) {
q2.push(it);
}
while(1) {
if (q1.empty() || q2.empty()) {
break;
}
int t1 = q1.front();
int t2 = q2.front();
char c = query(t1, t2);
if (c == 'R') {
q1.pop();
e1.emplace_back(t1, t2);
}
else {
q2.pop();
e2.emplace_back(t1, t2);
}
}
std::cout << '!' << '\n';
if (e1.size() == n - 1) {
for (auto [u, v] : e1) {
std::cout << u << ' ' << v << '\n';
}
}
else {
for (auto [u, v] : e2) {
std::cout << u << ' ' << v << '\n';
}
}
}
signed main() {
// std::ios::sync_with_stdio(0);
// std::cout.tie(0);
// std::cin.tie(0);
i64 t = 1;
// std::cin >> t;
while (t--) {
solve();
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3456kb
input:
3 B B
output:
? 1 2 ? 2 3 ! 1 2 2 3
result:
ok AC
Test #2:
score: -100
Wrong Answer
time: 4ms
memory: 3724kb
input:
983 B R R B B B B B R B R R R R R R R B B R R B R B R R B B R B R R R R B R B B B R R R B B R R B R B R B B B R B R R B R B B R R R B B B B R B R R B R B B R B R B R B R R R B B B R R B B B R R B R B B B R B B R R B B R R R R B R R B B B R B B B B R B R R B R R R B R R B R R B R R B R B R B B R B R ...
output:
? 1 2 ? 2 3 ? 3 4 ? 4 5 ? 5 6 ? 6 7 ? 7 8 ? 8 9 ? 9 10 ? 10 11 ? 11 12 ? 12 13 ? 13 14 ? 14 15 ? 15 16 ? 16 17 ? 17 18 ? 18 19 ? 19 20 ? 20 21 ? 21 22 ? 22 23 ? 23 24 ? 24 25 ? 25 26 ? 26 27 ? 27 28 ? 28 29 ? 29 30 ? 30 31 ? 31 32 ? 32 33 ? 33 34 ? 34 35 ? 35 36 ? 36 37 ? 37 38 ? 38 39 ? 39 40 ? 40 ...
result:
wrong answer guessed graph is incorrect