```cpp
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long x1,x2,y1,y2;
cin>>x1>>x2>>y1>>y2;
if(x2*y2>pow(2ll,31ll)-1ll||x1*y1<0ll-pow(2ll,31ll))cout<<"long long int";
else cout<<"int";
}
```
by Little_Cart @ 2023-12-20 19:21:06
这道题实际很坑
得四个交叉相乘,上界和下界都需考虑
我的代码(一开始就因为没有四个交叉相乘,wa了5个点
[提交记录](https://www.luogu.com.cn/record/list?pid=P1401&user=1118614)
```cpp
#include <bits/stdc++.h>
using namespace std;
const long long m1 = 2147483647;
const long long m2 = -2147483648;
long long xl,xr,yl,yr;
int main(){
scanf("%lld%lld%lld%lld",&xl,&xr,&yl,&yr);
if (xl * yl > m1 || xl * yl < m2 || xr * yr > m1 || xr * yr < m2 || xl * yr > m1 || xl * yr < m2 || xr * yl > m1 || xr * yl < m2) printf("long long int");
else printf("int");
return 0;
}
```
by liuruiqing @ 2023-12-20 19:24:11
@[Little_Cart](/user/392157) 得交叉相乘,不然wa8个点
[不然会这样](https://www.luogu.com.cn/record/140331792)
by liuruiqing @ 2023-12-20 19:27:29