@[bcbgszyzh](/user/726902) 输出 long long 改成输出 long long int。另外还要判最小值是否大于最大值,最大值是否小于最小值。
by xiaoshumiao @ 2023-12-22 12:07:43
样例是 A 的 @[xiaoshumiao](/user/1008513)
by bcbgszyzh @ 2023-12-22 12:12:28
@[xiaoshumiao](/user/1008513)
>另外还要判最小值是否大于最大值,最大值是否小于最小值。
什么意思
by bcbgszyzh @ 2023-12-22 12:12:53
楼上正解,放个我的赛时代码给您参考吧(?
```cpp
#include<bits/stdc++.h>
using namespace std;
int main(){
long long x1,x2,y1,y2;
long long m1,m2,m3,m4;
cin>>x1>>x2>>y1>>y2;
m1=x2*y2;
m2=x2*y1;
m3=x1*y2;
m4=x1*y1;
if(m1>INT_MAX||m2>INT_MAX||m3>INT_MAX||m4>INT_MAX)cout<<"long long int";
else if(m1<INT_MIN||m2<INT_MIN||m3<INT_MIN||m4<INT_MIN)cout<<"long long int";
else cout<<"int";
return 0;
}
```
by Gun_Der @ 2023-12-22 12:14:10
```cpp
#include<bits/stdc++.h>
using namespace std;
int main(){
long long x,y,z,w;
scanf("%lld%lld%lld%lld",&x,&y,&z,&w);
long long ans=x*z,ans2=y*w,ans3=x*w,ans4=y*z;
if(ans<=INT_MIN||ans2<=INT_MIN||ans3<=INT_MIN||ans4<=INT_MAX)printf("long long ");
else if(ans>=INT_MAX||ans2>=INT_MAX||ans3>=INT_MAX||ans4>=INT_MAX)printf("long long ");
printf("int");
return 0;
}
```
变 $
69 $ 分了
by bcbgszyzh @ 2023-12-22 12:26:47
@[M3R8L3RUN](/user/1044830) @[Gun_Der](/user/173711) @[xiaoshumiao](/user/1008513)
by bcbgszyzh @ 2023-12-22 12:27:36
@[bcbgszyzh](/user/726902) 看清题面,超过int要求输出“long long int",和一般习惯不一样(
by Gun_Der @ 2023-12-22 12:34:22
@[bcbgszyzh](/user/726902) 此外,if中不等号是严格的(即没有等号,只有大于或小于),因为恰好等于int_max还在int范围内
by Gun_Der @ 2023-12-22 12:39:13
@[bcbgszyzh](/user/726902) 还有,最后一个输出int是不是忘了加else?
by Gun_Der @ 2023-12-22 12:40:45
@[bcbgszyzh](/user/726902)
```cpp
if(ans<INT_MIN||ans2>INT_MAX||ans>INT_MAX||ans2<INT_MIN)printf("long long int");
```
by xiaoshumiao @ 2023-12-22 12:54:16