#include "swaps.h"
#include <bits/stdc++.h>
using namespace std;
vector<int> rooms;
void merge_sort(int l, int r) {
if (r - l <= 1)
return;
int mid = (l + r) / 2;
merge_sort(l, mid);
merge_sort(mid, r);
vector<int> merged;
int idx_l = l, idx_r = mid;
while (idx_l != mid && idx_r != r) {
schedule(rooms[idx_l], rooms[idx_r]);
if (visit()[0])
merged.push_back(rooms[idx_l++]);
else
merged.push_back(rooms[idx_r++]);
}
while (idx_l != mid)
merged.push_back(rooms[idx_l++]);
while (idx_r != r)
merged.push_back(rooms[idx_r++]);
for (int i = 0; i < r - l; i++)
rooms[l + i] = merged[i];
}
void solve(int N, int V) {
rooms.resize(N);
for (int i = 0; i < N; i++)
rooms[i] = i + 1;
merge_sort(0, N);
answer(rooms);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |