/* -*- coding: utf-8 -*- * * 2852.cc: No.2852 Yakitori Optimization Problem - yukicoder */ #include #include #include using namespace std; /* constant */ const int MAX_N = 200000; /* typedef */ using ll = long long; using pii = pair; /* global variables */ int as[MAX_N], bs[MAX_N], cs[MAX_N]; pii ps[MAX_N]; /* subroutines */ /* main */ int main() { int n, k; scanf("%d%d", &n, &k); for (int i = 0; i < n; i++) scanf("%d", as + i); for (int i = 0; i < n; i++) scanf("%d", bs + i); for (int i = 0; i < n; i++) scanf("%d", cs + i); for (int i = 0; i < n; i++) ps[i] = {cs[i] - bs[i], i}; sort(ps, ps + n); ll sum = 0; for (int i = 0; i < k; i++) { int j = ps[i].second; sum += as[j] + bs[j]; } for (int i = k; i < n; i++) { int j = ps[i].second; sum += as[j] + cs[j]; } printf("%lld\n", sum); return 0; }