Codeforces Round #402 (Div. 2) C:Dishonest Sellers
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <climits>
#include <algorithm>
using namespace std;
#define MAXN 200010
static int N,K,ans,A[MAXN],B[MAXN];
int main()
{
scanf("%d%d", &N, &K);
for (int i = 1; i <= N; i++)//贪心
scanf("%d", &A[i]), ans += A[i];//先全选A 然后再选B 选B时,可以b-a+ans 就行了//这样就间接的选择了B
for (int i = 1; i <= N; i++)
scanf("%d", &B[i]), B[i]-=A[i];
sort(B + 1, B + N + 1);
for (int i = 1; i<=N-K&&B[i]<0; i++)//B[i]<0表示B<A 在满足B选择个数小于N-K时 还可以在选B 这就是贪心
ans += B[i];//greed
printf("%d\n", ans);
return 0;
}
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <climits>
#include <algorithm>
using namespace std;
#define MAXN 200010
static int N,K,ans,A[MAXN],B[MAXN];
int main()
{
scanf("%d%d", &N, &K);
for (int i = 1; i <= N; i++)//贪心
scanf("%d", &A[i]), ans += A[i];//先全选A 然后再选B 选B时,可以b-a+ans 就行了//这样就间接的选择了B
for (int i = 1; i <= N; i++)
scanf("%d", &B[i]), B[i]-=A[i];
sort(B + 1, B + N + 1);
for (int i = 1; i<=N-K&&B[i]<0; i++)//B[i]<0表示B<A 在满足B选择个数小于N-K时 还可以在选B 这就是贪心
ans += B[i];//greed
printf("%d\n", ans);
return 0;
}