题目描述
blablabla
算法1
(暴力枚举)
C++ 代码
#include <iostream>
#include <vector>
using namespace std;
const int MAXN = 1e3 + 7;
vector<int> v[21];
int n, k, arr[MAXN];
int main() {
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> arr[i];
}
cin >> k;
int first = 0, index = 0;
for (int i = 1; i <= k; i++) {
index += 1 << (i - 1);
for (int j = first; j < index && j < n; j++) {
v[i].push_back(arr[j]);
first++;
}
}
if(1 << k - 1 > n) cout << "EMPTY";
else for (auto x: v[k]) cout << x << ' ';
return 0;
}
算法2
结论
C++ 代码
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e3 + 7;
int n, l, r, k, arr[MAXN];
int main() {
cin.tie(nullptr)->ios::sync_with_stdio(false);
int n;
cin >> n;
for (int i = 1; i <= n; ++i) {
cin >> arr[i];
}
cin >> k;
l = 1 << (k - 1), r = (1 << k) - 1;
if(l > n) {
cout << "EMPTY";
return 0;
}
for (int i = l; i <= min(n, r); ++i) {
cout << arr[i] << ' ';
}
return 0;
}