sort默认非降序排序,即返回参数1<参数2的布尔值。
改成参数1>参数2就是降序排序啦。
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
vector<long> C1,C2,P1,P2;
bool cmp(long d1,long d2){
return d1>d2;
}
int main(){
int Nc,Np,i;
long temp;
cin>>Nc;
for(i=0;i<Nc;i++){
cin>>temp;
if(temp>0)
C1.push_back(temp);
else
C2.push_back(temp);
}
sort(C1.begin(),C1.end(),cmp);
sort(C2.begin(),C2.end());
cin>>Np;
for(i=0;i<Np;i++){
cin>>temp;
if(temp>0)
P1.push_back(temp);
else
P2.push_back(temp);
}
sort(P1.begin(),P1.end(),cmp);
sort(P2.begin(),P2.end());
int sum=0;
for(i=0;i<C1.size()&&i<P1.size();i++)
sum+=C1[i]*P1[i];
for(i=0;i<C2.size()&&i<P2.size();i++)
sum+=C2[i]*P2[i];
cout<<sum;
system("pause");
return 0;
}