注意循环跳出的条件。
#include <iostream> #include <cstdio> #include <algorithm> #define MAX 100001 using namespace std; long long gum[MAX], monster[MAX]; bool cmp(long long a, long long b){ return a > b; } int main(){ int t, m, n; int ans; cin >> t; while (t--) { cin >> n >> m; long long ans = 0; for(int i = 0; i < n; i++){ cin >> gum[i]; } for(int i = 0; i < m; i++){ cin >> monster[i]; } sort(gum, gum + n, cmp); sort(monster, monster + m); for(int i = 0; i < n; i++){ if(i >= m || gum[i] <= monster[i]){ break; } ans += gum[i] - monster[i]; } cout << ans << endl; } return 0; }