P1401 题解
FurippuWRY · · 题解
被叉了。
交了 10 次硬是没有发现取最大值没有打绝对值,wssb。
因为是要判定两个区间中元素乘积的最大值,那么判定两区间上下界乘积的绝对值的最大值,即
为什么要取绝对值?举个例子,int,而正解应是 long long int。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll r = 2147483647;
ll xa, xb, ya, yb;
void judge(ll x) {
if (x >= r) cout << "long long int";
else cout << "int";
}
int main() {
cin >> xa >> xb >> ya >> yb;
judge(max({abs(xa * ya), abs(xa * yb), abs(xb * ya), abs(xb * yb)}));
return 0;
}