結果
問題 |
No.3016 ハチマキおじさん
|
ユーザー |
|
提出日時 | 2025-02-22 02:53:19 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 218 ms / 2,000 ms |
コード長 | 835 bytes |
コンパイル時間 | 3,534 ms |
コンパイル使用メモリ | 283,896 KB |
実行使用メモリ | 14,080 KB |
最終ジャッジ日時 | 2025-02-22 02:53:29 |
合計ジャッジ時間 | 8,852 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 31 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define rep(i, n) for(int i=0; i<n; i++) #define chmin(x, y) x = min(x, y) // #include <all.hpp> #define int long long signed main() { int n; cin >> n; vector<int> a(n); rep(i, n) cin >> a[i]; vector<int> b(n-1); rep(i, n-1) cin >> b[i]; sort(a.begin(), a.end()); sort(b.begin(), b.end()); int ans = 8'00000'00000LL; vector<int> l(n, 0), r(n, 0); rep(i,n){ if(i==0)continue; l[i] = l[i-1] + abs(a[i-1] - b[i-1]); r[i] = r[i-1] + abs(a[i] - b[i-1]); } int tmp = r.back(); // reverse(r.begin(), r.end()); rep(i, n){ r[i] = tmp - r[i]; } rep(i, n){ chmin(ans, l[i] + r[i]); } set<int> st; rep(i,n) { if(l[i] + r[i] == ans) { st.insert(a[i]); } } cout << st.size() << endl; for(auto x: st) cout << x << " "; }