#include #include #include #include #include #include #include #include #include static const int MOD = 1000000007; using ll = long long; using u32 = unsigned; using u64 = unsigned long long; using namespace std; template constexpr T INF = ::numeric_limits::max()/32*15+208; int main() { int n; cin >> n; vector A(n), B(n); for (auto &&i : A) scanf("%d", &i); for (auto &&i : B) scanf("%d", &i); vector o(n); iota(o.begin(),o.end(), 0); ll S = accumulate(B.begin(),B.end(), 0LL); sort(o.begin(),o.end(), [&](int x, int y){ return A[x] < A[y]; }); ll val = -INF; for (auto &&i : o) { S -= B[i]*2; if(S <= 0) { val = A[i]; break; } } ll ans = 0; for (int i = 0; i < n; ++i) { ans += abs(A[i]-val)*B[i]; } cout << val << " " << ans << "\n"; return 0; }