有没有dalao帮忙看看思路有没有问题呀
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
using namespace std;
int main() {
int n, m, k, tn = 0, tm = 0, count = 0;
int a[1000011], b[1000011];
//int a, b, x, y;
//int a[111], b[111], c[111], d[111];
//int dx[14] = {0, -2, -1, 0, 1, 2, 0, 0, 0, 0, 1, 1, -1, -1}, dy[14] = {0, 0, 0, 0, 0, 0, -2, -1, 1, 2, 1, -1, 1, -1};
cin >> n >> m >> k;
for(int i = 1;i <= n;i ++) cin >> a[i];
for(int i = 1;i <= m;i ++) cin >> b[i];
sort(a + 1, a + n + 1); reverse(a + 1, a + n + 1);
sort(b + 1, b + m + 1); reverse(b + 1, b + m + 1);
for(int i = 1; i <= min(n, m);i ++) {
if(a[i + tn] > k) {
count += a[i + tn] * 2 + b[min(n, m) - tn];
tn++;
}
else {
count += b[i + tm] + k + a[min(n, m) - tm];
tm++;
}
}
if(n > m) {
for(int i = m + 1;i <= n;i ++) {
count += a[i];
}
}
if(m > n) {
for(int i = n + 1;i <= m;i ++) {
count += b[i];
}
}
cout << count << endl;
return 0;
}