由于数据中最小值和最大值都不一样所以不能采用两次取绝对值最大相乘去判断的写法去进行求解
这是WA#101的代码
void solve()
{
int a,b,c,d;
cin>>a>>b>>c>>d;
int mx1 = max(abs(a),abs(b));
int mx2 = max(abs(c),abs(d));
int mx = mx1*mx2;
if(mx<=INT32_MAX&&mx>=INT32_MIN){
cout<<"int\n";
return ;
}
cout<<"long long int\n";
}
不过可以卡过去,虽然还是有点小问题的,下面是AC代码
void solve()
{
int a,b,c,d;
cin>>a>>b>>c>>d;
int mx1 = max(abs(a),abs(b));
int mx2 = max(abs(c),abs(d));
int mx = mx1*mx2;
if(mx<=2147483648){
cout<<"int\n";
return ;
}
cout<<"long long int\n";
}
100分WA#101
与100分AC