QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#664786#9484. Colored Complete GraphZvezdy#WA 1ms3576kbC++141.7kb2024-10-21 22:20:332024-10-21 22:20:34

Judging History

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

  • [2024-10-21 22:20:34]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3576kb
  • [2024-10-21 22:20:33]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
const int N = 5e4 + 5;

int cnt = 0;

map<pair<int, int>, int> mp;

int ask(int l, int r) {
    cout << "?" << l << " " << r << endl;
    char c;
    cin >> c;
    return c == 'R';
}

int flag[N];

int vis[N][2];

void solve() {
    int n;
    std::cin >> n;
    for (int i = 2; i <= n; ++i) {
        mp[{i - 1, i}] = ask(i - 1, i);

        mp[{i, i - 1}] = mp[{i - 1, i}];
    }
    vector<pair<int, int>> ans[2];
    flag[n] = mp[{n, n - 1}];
    set<int> st[2];
    for (int i = n - 1; i >= 1; --i) {
        if (mp[{i, i + 1}] == flag[i + 1]) {
            flag[i] = flag[i + 1];
            ans[flag[i]].push_back({i, i + 1});
            vis[i][flag[i]] = 1;
            st[flag[i] ^ 1].insert(i);
        } else {
            bool flag = 0;
            int &now = mp[{i, i + 1}];
            st[now].erase(i + 1);
            for (set<int>::iterator it = st[now].begin(); it != st[now].end();) {
                if (ask(i, *it) == now) {
                    ans[now].push_back({i, *it});
                    it = st[now].erase(it);
                } else {
                    ans[now ^ 1].push_back({*it, i});
                    flag = 1;
                    break;
                }
            }
            if (!flag) {
                st[now ^ 1].insert(i);
            }
        }
    }
    for (int i = 0; i < 2; i++) {
        if (ans[i].size() == n - 1) 
        {
            cout << "!\n";
            for (auto &[u, v] : ans[i]) {
                cout << u << ' ' << v << '\n';
            }
            return;
        }
    }
    assert(0);
}

int main() {
    solve();
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 1ms
memory: 3576kb

input:

3

output:

?1 2

result:

wrong answer invalid question