#include "monster.h"
namespace {
bool example_variable;
} // namespace
std::vector<int> merge_sort(std::vector<int> cisla){
if (cisla.size() == 0){
return {};
}
std::vector<int> a, b;
int mid = cisla.size()/2;
for (int i = 0; i < mid; i++){
a.push_back(cisla[i]);
}
for (int i = mid; i < cisla.size(); i++){
b.push_back(cisla[i]);
}
a = merge_sort(a);
b = merge_sort(b);
int i, j;
std::vector<int> result;
while (i < a.size() && j < b.size()){
bool fight = Query(a[i], b[j]);
if (fight){
result.push_back(b[j]);
j++;
}
else{
result.push_back(a[i]);
i++;
}
}
while (i < a.size()){
result.push_back(a[i]);
i++;
}
while (j < b.size()){
result.push_back(b[j]);
j++;
}
return result;
}
std::vector<int> Solve(int N) {
std::vector<int> T(N);
std::vector<int> cisla;
for (int i = 0; i < N; i++){
cisla.push_back(i);
}
std::vector<int> serazeno = merge_sort(cisla);
for (int i = 0; i < N-2; i++){
bool XY = Query(serazeno[i], serazeno[i+1]);
bool XZ = Query(serazeno[i], serazeno[i+2]);
if (XZ == false){
if (XY == false){
int temp = serazeno[i];
serazeno[i] = serazeno[i+1];
serazeno[i+1] = temp;
}
}
else{
if (XY == true){
int temp = serazeno[i];
serazeno[i] = serazeno[i+1];
serazeno[i+1] = temp;
}
}
}
for (int i = 0; i < N; i++){
T[serazeno[i]] = i;
}
for (int i = 0; i < N; i++) T[i] = (N - 1) - i;
return T;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |