其实一开始想对了,就是无论是+负数还是-正数,统统塞进-(xxxxx)里,不用分那么多类情况,归约起来其实就两种情况,有没有负号。
#include<iostream>
#include<string>
#include<cmath>
#include<vector>
#include<algorithm>
#define int long long
#define IO ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
using namespace std;
int n,m,zero;
vector<int>v;
signed main()
{
IO;
cin>>n>>m;
int len=n+m+1;
for(int i=1;i<=len;i++)
{
int x;
cin>>x;
v.push_back(x);
}
sort(v.begin(),v.end());
int ans=0;
if(m)
{
ans+=v.back()-v[0];
for(int i=1;i<v.size()-1;i++)
{
ans+=abs(v[i]);
}
}
else
{
for(int i=0;i<v.size();i++)
{
ans+=v[i];
}
}
cout<<ans;
}