結果
問題 | No.2223 Merged Med |
ユーザー |
![]() |
提出日時 | 2022-01-27 15:04:26 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,044 bytes |
コンパイル時間 | 2,327 ms |
コンパイル使用メモリ | 202,544 KB |
最終ジャッジ日時 | 2025-01-27 15:37:30 |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 11 TLE * 22 |
ソースコード
// 愚直解 #include <bits/stdc++.h> using namespace std; #define REP(i, m, n) for (int i = m; i < (int)(n); ++i) #define rep(i, n) REP(i, 0, n) template <typename T> inline bool chmin(T &a, T b) { if (a > b) { a = b; return true; } return false; } int mid(vector<int> a) { sort(begin(a), end(a)); int k = a.size(); return a[k / 2]; } int main() { cin.tie(nullptr); ios::sync_with_stdio(false); int n, q; cin >> n >> q; vector<int> a(n); rep(i, n) cin >> a[i], a[i]--; vector<int> l(q), r(q); rep(i, q) cin >> l[i] >> r[i], l[i]--; auto solve_i = [&](int L, int R) { int Min = int(1e9); REP(l, L, R) { REP(r, l + 1, R + 1) { vector<int> b(a.begin() + l, a.begin() + r); vector<int> c; for (int i = L; i < R;) { if (i < l or i >= r) c.push_back(a[i]), i++; else c.push_back(mid(b)), i = r; } chmin(Min, mid(c)); } } return Min; }; rep(i, q) cout << solve_i(l[i], r[i]) + 1 << "\n"; }