100分但没过,警示后人#101Wa
查看原帖
100分但没过,警示后人#101Wa
867418
wlh666666楼主2024/1/3 21:05

由于数据中最小值和最大值都不一样所以不能采用两次取绝对值最大相乘去判断的写法去进行求解

这是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));
    // cout<<INT32_MAX<<endl;
    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

2024/1/3 21:05
加载中...