#include #include #include using namespace std; using ll = long long; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N, M; ll W; cin >> N >> M >> W; vector A(N), B(M), C(M); for (int i = 0; i < N; i++) cin >> A[i]; for (int i = 0; i < M; i++) cin >> B[i]; for (int i = 0; i < M; i++) cin >> C[i]; sort(A.rbegin(), A.rend()); for (int i = 1; i < N; i++) A[i] += A[i - 1]; ll ans = 0; for (int S = 0; S < (1 << M); S++) { ll value = 0; ll weight = 0; for (int i = 0; i < M; i++) if ((S >> i) & 1) { value += C[i]; weight += B[i]; } if (weight > W) continue; if (weight < W) { value += A[min((ll)N - 1, W - weight - 1)]; } ans = max(ans, value); } cout << ans << '\n'; }