1 条题解

  • 1
    @ 2025-10-10 9:14:13

    看注释

    #include <iostream>
    #include <cmath>
    #include <climits>
    using namespace std;
    int main()
    {
        int x1, y1, x2, y2;
        cin >> x1 >> y1 >> x2 >> y2;
        long long max1, max2;
        // 获取绝对值, 排除负数影响
        x1 = abs(x1);
        x2 = abs(x2);
        y1 = abs(y1);
        y2 = abs(y2);
    
        // 获取两个边界最大值
        max1 = max(x1, y1);
        max2 = max(x2, y2);
    
        // 若有最大值为零,乘积同样为零
        if (max1 == 0 || max2 == 0)
        {
            cout << "int";
            return 0;
        }
    
        // 若有最大值大于int范围最大值
        if (max1 > INT_MAX || max2 > INT_MAX)
        {
            cout << "long long";
            return 0;
        }
    
        // 有一个最大值大于ing范围最大值与另一个最大值的商
        if (INT_MAX / max1 < max2 || INT_MAX / max2 < max1)
        {
            cout << "long long";
            return 0;
        }
    
        cout << "int";
        return 0;
    }
    
    • 1

    信息

    ID
    513
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    (无)
    递交数
    144
    已通过
    18
    上传者