void solve(){
cin >> n >> m;
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);
sort(b + 1, b + m + 1);
for(int i = 1; i <= n; i ++ ) sa[i] = sa[i - 1] + a[i];
for(int i = 1; i <= m; i ++ ) sb[i] = sb[i - 1] + b[i];
int ans = 0;
for(int i = 0; i <= n; i ++ )
ans = max(ans, (sa[n] - sa[i]) - sb[n - i] - sa[i] + (sb[m] - sb[m - i]));
cout << ans << endl;
}
代码如上
为什么遍历答案那里不用加abs 我觉得应该改成ans = max(ans, abs((sa[n] - sa[i]) - sb[n - i]) + abs((sb[m] - sb[m - i]) - sa[i]));
但按照代码那样子写也能过