CE玄关

P1401 [入门赛 #18] 禁止在 int 乘 int 时不开 long long

@[xukeyu](/user/1239269) 不是 `<-2147483648` 吗? `int` 类型的范围是 $-2147483648$ 到 $2147483647$
by LikablePie79015 @ 2024-08-20 09:50:09


@[LikablePie79015](/user/733515) o
by xukeyu @ 2024-08-20 09:51:43


```cpp #include<iostream> using namespace std; long long x1,x2,y1,y2; int main(){ cin>>x1>>x2>>y1>>y2; if(x1*y1>2147483647||x1*y1<-2147483648||x2*y2>2147483647||x1*y1<-2147483648) cout<<"long long int"; else cout<<"int"; return 0; }
by xukeyu @ 2024-08-20 09:52:38


应该写一个check函数去写好一点
by Diredtofu @ 2024-08-20 09:55:15


完了,落谷怎么发代码,我忘了
by Diredtofu @ 2024-08-20 09:57:13


@[xukeyu](/user/1239269) 但是还是不能 AC,HACK如下 ```cpp 0 1000000000 -1000000000 0 ```
by LikablePie79015 @ 2024-08-20 09:59:22


~~~~ bool check(long long num) { if (num <= 2147483647 && num >= -2147483648) { return true; } return false; }
by Diredtofu @ 2024-08-20 10:00:57


@[xukeyu](/user/1239269) 乖乖枚举叭 ```cpp #include<iostream> using namespace std; long long x1,x2,y1,y2; int main(){ cin>>x1>>x2>>y1>>y2; if(x1*y1>2147483647||x1*y1<-2147483648||x2*y2>2147483647||x2*y2<-2147483648|| x1*y2>2147483647||x1*y2<-2147483648||x2*y1>2147483647||x2*y1<-2147483648) cout<<"long long int"; else cout<<"int"; return 0; } ```
by LikablePie79015 @ 2024-08-20 10:01:55


@[xukeyu](/user/1239269) 主函数代码 ~~~~ long long r = xu * yu; long long l = xl * yl; long long ll = xu * yl; long long rr = xl * yu; if (check(r) && check(l) && check(ll) && check(rr)) { cout << "int" << endl; } else { cout << "long long int" << endl; } return 0; ~~****~~
by Diredtofu @ 2024-08-20 10:02:20


记得读入一下rl,ru; yl, yu;
by Diredtofu @ 2024-08-20 10:03:04


上一页 | 下一页