제출 #1221779

#제출 시각아이디문제언어결과실행 시간메모리
1221779spetrMonster Game (JOI21_monster)C++20
0 / 100
22 ms420 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 + 1 < N; i++){ bool XY = Query(cisla[i], cisla[i+1]); if (XY == false) { std::swap(cisla[i], cisla[i+1]); i++; } } 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...