1 条题解
-
1
看注释
#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
- 上传者