Submission #1072998

#TimeUsernameProblemLanguageResultExecution timeMemory
1072998Double_SlashMinerals (JOI19_minerals)C++17
40 / 100
16 ms2648 KiB
#include "minerals.h"
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

void dfs(int n, const vector<int> &a, const vector<int> &b, bool empty = true) {
    if (n == 1) {
        Answer(a.front(), b.front());
        if (not empty) Query(a.front());
        return;
    }
    int m = (n + 1) >> 1;
    vector<int> al, ar, bl, br;
    for (int i = 0; i < m; ++i) {
        al.emplace_back(a[i]);
        if (empty) Query(a[i]);
    }
    for (int i = m; i < n; ++i) {
        ar.emplace_back(a[i]);
        if (not empty) Query(a[i]);
    }
    for (int i = 0; i < n; ++i) {
        if (Query(b[i]) == m) {
            bl.emplace_back(b[i]);
        } else {
            br.emplace_back(b[i]);
        }
        Query(b[i]);
    }
    dfs(m, al, bl, false);
    dfs(n - m, ar, br, true);
}

void Solve(int N) {
    vector<int> a, b;
    for (int i = 1; i <= N * 2; ++i) {
        if (Query(i) == a.size()) {
            Query(i);
            b.emplace_back(i);
        } else {
            a.emplace_back(i);
        }
    }
    dfs(N, a, b, false);
}

Compilation message (stderr)

minerals.cpp: In function 'void Solve(int)':
minerals.cpp:38:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |         if (Query(i) == a.size()) {
      |             ~~~~~~~~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...