1 条题解
-
0
#include <bits/stdc++.h> using namespace std; using ll = long long; struct num_idx { int num; int idx; }; bool num_comp(const num_idx& lhs, const num_idx& rhs) { if (lhs.num != rhs.num) return lhs.num < rhs.num; return lhs.idx < rhs.idx; } void solve() { int n; cin >> n; vector<num_idx> nums(n); int mid = (n - 1) / 2; for (int i = 0; i < n; i++) { cin >> nums[i].num; nums[i].idx = i; } sort(nums.begin(), nums.end(), num_comp); int left_med = nums[n/2].num; int right_med = nums[n/2-1].num; vector<int> answers(n); for (int i = 0; i < n / 2; i++) { answers[nums[i].idx] = left_med; } for (int i = n / 2; i < n; i++) { answers[nums[i].idx] = right_med; } for (int answer : answers) cout << answer << "\n"; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); solve(); return 0; }
- 1
信息
- ID
- 9381
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 1
- 上传者