Submission #71962

#TimeUsernameProblemLanguageResultExecution timeMemory
71962IDxTree (#118)Magic Dowsing (FXCUP3_magic)C++17
100 / 100
3 ms380 KiB
#include "dowsing.h"
#include <vector>
#include <set>

using namespace std;

void FindTreasure(int N) {
    vector<int> v;
    set<int> mp;
    for (int i = 1; i <= N; ++i) {
        if (Detect(i, i)) v.push_back(i);
        else mp.insert(i);
    }
    if (v.empty()) {
        for (int i = 1; i <= N - 2; i += 2) {
            if (Detect(i, i + 1)) {
                if (Detect(i, i + 2)) Report(i, i);
                else Report(i + 1, i + 1);
                return;
            }
        }
        if ((N & 1) || Detect(1, N)) Report(N, N);
        else Report(N - 1, N - 1);
    }
    else {
        int x = *mp.begin();
        if (Detect(x, v[0])) Report(v[1], v[0]);
        else Report(v[0], v[1]);
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...