#include using namespace std; using ll = long long; #ifdef LOCAL #include #else #define debug(...) #endif constexpr ll INF = 1LL << 60; int main() { cin.tie(nullptr); ios::sync_with_stdio(false); cout << fixed << setprecision(20); int N; cin >> N; vector A(N), B(N - 1); for (int i = 0; i < N; i++) cin >> A[i]; for (int i = 0; i < N - 1; i++) cin >> B[i]; sort(A.begin(), A.end()); sort(B.begin(), B.end()); // left[i] := [0, i) の不満度 // right[i] := [i, N) の不満度 vector left(N), right(N); for (int i = 0; i < N - 1; i++) { left[i + 1] = left[i] + abs(A[i] - B[i]); } for (int i = N - 2; i >= 0; i--) { right[i] = right[i + 1] + abs(A[i + 1] - B[i]); } // i 番目のハチマキを残したときの不満度の最小値 ll ans = INF; for (int i = 0; i < N; i++) { ans = min(ans, left[i] + right[i]); } // 残す可能性のあるハチマキの集合 L vector L; for (int i = 0; i < N; i++) { if (ans == left[i] + right[i]) L.emplace_back(A[i]); } sort(L.begin(), L.end()); L.erase(unique(L.begin(), L.end()), L.end()); int T = L.size(); cout << T << '\n'; for (int i = 0; i < T; i++) { cout << L[i] << " \n"[i == T - 1]; } }