제출 #282472

#제출 시각아이디문제언어결과실행 시간메모리
282472rama_pangPark (JOI17_park)C++14
10 / 100
31 ms512 KiB
#include "park.h" #include <bits/stdc++.h> using namespace std; static int Place[1400]; void Detect(int T, int N) { if (T == 1) { for (int i = 0; i < N; i++) { for (int j = i + 1; j < N; j++) { Place[i] = 1; Place[j] = 1; if (Ask(i, j, Place)) { Answer(i, j); } Place[i] = 0; Place[j] = 0; } } } else if (T == 2) { mt19937 rnd(12345); function<void(int, int, vector<int>)> Solve = [&](int l, int r, vector<int> cand) { if (cand.empty()) { return Answer(min(l, r), max(l, r)); } memset(Place, 0, sizeof(Place)); int m = cand[rnd() % cand.size()]; for (auto i : cand) { Place[i] = 1; } Place[l] = Place[r] = 1; vector<int> lf, rg; for (auto i : cand) if (i != m) { Place[i] = 0; if (Ask(l, m, Place)) { rg.emplace_back(i); } else { lf.emplace_back(i); } Place[i] = 1; } Solve(m, r, rg); Solve(l, m, lf); }; vector<int> cand; for (int i = 1; i + 1 < N; i++) { cand.emplace_back(i); } Solve(0, N - 1, cand); } }
#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...