Submission #1221774

#TimeUsernameProblemLanguageResultExecution timeMemory
1221774spetrMonster Game (JOI21_monster)C++20
0 / 100
24 ms408 KiB
#include "monster.h" #include <iostream> namespace { bool example_variable; } void merge_sort(std::vector<int>& v, int l, int r) { if (r - l <= 1) return; int mid = (l + r) / 2; merge_sort(v, l, mid); merge_sort(v, mid, r); std::vector<int> result; result.reserve(r - l); int i = l, j = mid; while (i < mid && j < r) { bool fight = Query(v[i], v[j]); if (fight) { result.push_back(v[j]); j++; } else { result.push_back(v[i]); i++; } } while (i < mid) { result.push_back(v[i]); i++; } while (j < r) { result.push_back(v[j]); j++; } for (int k = l; k < r; ++k) { v[k] = result[k - l]; } } std::vector<int> Solve(int N) { std::vector<int> T(N); std::vector<int> cisla(N); for (int i = 0; i < N; i++){ cisla[i] = i; } merge_sort(cisla, 0, N); for (int i = 0; i < N; i++){ T[cisla[i]] = i; } /*/for (int i = 0; i < N; i++){std::cout << T[i] << " ";} std::cout << "\n"; for (int i = 0; i < N; i++){std::cout << cisla[i] << " ";} std::cout << "\n";/*/ for (int i = 0; i + 3 < N; i++){ bool XY = Query(cisla[i], cisla[i+3]); bool XZ = Query(cisla[i], cisla[i+2]); if (XY || XZ) { std::swap(cisla[i], cisla[i+1]); i++; } } bool XY = Query(cisla[N-3], cisla[N-1]); if (XY){ std::swap(cisla[N-3], cisla[N-2]); } for (int i = 0; i < N; i++){ T[cisla[i]] = i; } /*/for (int i = 0; i < N; i++){std::cout << T[i] << " ";} std::cout << "\n"; for (int i = 0; i < N; i++){std::cout << cisla[i] << " ";} std::cout << "\n";/*/ return T; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...