题目传送门 我本来还以为这个题目很难,直到发现 t 不重复(去找吧,包有) 所以只需要用 v 就行了

以下是代码:

#include<bits/stdc++.h>
using namespace std;
struct node{
	int t, v;
}a[100005];
int n, k;
long long ans;
bool cmp(node i, node j){
    return i.v > j.v;
}
int main(){
	freopen("coin.in", "r", stdin);
	freopen("coin.out", "w" , stdout);
	cin >> n >> k;
	for (int i = 1; i <= n; i++) cin >> a[i].t;
	for (int i = 1; i <= n; i++) cin >> a[i].v;
	sort(a+1, a+1+n, cmp);
	for (int i = 1; i <= k; i++) {
		ans += a[i].v;
	}
	cout << ans;
	return 0;
}