#include using namespace std; unsigned long long lena_sort(vector& nums) { if (nums.size() < 2) { return 0; } int pivot = nums[0]; vector less; vector more; unsigned long long counter = 0; for (int i = 1; i < nums.size(); ++i) { // Comparison ++counter; if (nums[i] < pivot) { less.push_back(nums[i]); } else { more.push_back(nums[i]); } } unsigned long long c1 = lena_sort(less); unsigned long long c2 = lena_sort(more); for (int i = 0; i < nums.size(); ++i) { if (i < less.size()) nums[i] = less[i]; else if (i == less.size()) nums[i] = pivot; else if (i - less.size() < more.size()) nums[i] = more[i - less.size() - 1]; } return c1 + c2 + counter; } int main(){ int q; cin >> q; for(int a0 = 0; a0 < q; a0++){ int len; int c; cin >> len >> c; // your code goes here vector data(len, 0); int k = 0; for (int i = len/2; i >=0; i -= 1) { data[k] = 2*i; data[len - k - 1] = 2*i + 1; ++k; } auto orig = data; unsigned long long minVal = lena_sort(data); if (c == minVal) { for (int v : orig) cout << v << " "; cout << "\n"; continue; } unsigned long long maxVal = lena_sort(data); if (c > maxVal || c < minVal) cout << -1 << "\n"; if (c == maxVal) { for (int v : data) cout << v << " "; cout << "\n"; } } return 0; }