我的代码:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n,mx1=-1000000000,mx2=-1000000000,mn1=1000000000,mn2=1000000000;
vector <int> t(n);
for (int i=0;i<n;i++){
cin>>t[i];
}
for (int c=0;c<n;c++){
if (t[c]>0&&t[c]>mx1){
mx2=mx1;
mx1=t[c];
}else if (t[c]<0&&t[c]<mn1){
mn2=mn1;
mn1=t[c];
}
}
if ((mx1*mx2)>(mn1*mn2)){
cout<<mx2<<" "<<mx1;
}else{
cout<<mn1<<" "<<mn2;
}
return 0;
}
最大乘积 在一个填充了任意整数的数组中,找到两个乘积最大的数。不要使用嵌套循环。
输入数据
该程序首先被赋予值 n⩽50000——数组中元素的数量。输入的下一行包含数组元素本身 - 整数,模不超过 30000。
输出
按升序给出两个所需的数字。
是的,至少你没有考虑价值
n......但不知何故,你决定太久了。这是您要考虑的选项吗?
至少检查(顺便说一句,始终指定检查系统的 URL,因此有更多机会得到答案)通过。