coderzmx


私信TA

用户名:13703922842

访问量:5604

签 名:

Be patient!

等  级
排  名 874
经  验 3429
参赛次数 0
文章发表 14
年  龄 0
在职情况 学生
学  校 南昌大学
专  业 软件工程

  自我简介:

Be patient!

解题思路:
将读入的两个数组从小到大进行排序,然后根据数组第一个元素的正负进行判断。当第数组的最小元素为负时,使其与另一个数组的最大元素相乘;当数组的最小元素为正时,使其与另一个数组的最小元素相乘。之后删除相乘过的元素。
注意事项:

参考代码:

#include<iostream>

#include<algorithm>

#include<vector>

using namespace std;

int main()

{

int t,n;

cin>>t;

for(int i=0;i<t;i++)

{

cin>>n;

vector<int> v1,v2;

int d1[n],d2[n],temp;

for(int i=0;i<n;i++)

{

cin>>temp;

v1.push_back(temp);

}

for(int i=0;i<n;i++)

{

cin>>temp;

v2.push_back(temp);

}

sort(v1.begin(),v1.end());

sort(v2.begin(),v2.end());

int sum=0;

for(int i=0;i<n;i++)

{

if(v1.front()<0){

sum+=v1.front()*v2.back();

v1.erase(v1.begin());

v2.erase(v2.end()-1);

else if(v1.front()>0){

sum+=v1.back()*v2.front();

v1.erase(v1.end()-1);

v2.erase(v2.begin());

}else{

sum+=v1.front()*v2.back();

v1.erase(v1.begin());

v2.erase(v2.end()-1);

}

}

cout<<sum<<endl;

}

return 0;

}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区