WA求助!!!

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

@[HUTEHE](/user/1086575) 就说92的吧 有可能是这个原因: >2. 某些时候 $a$ 和 $y$ 或 $x$ 和 $b$ 的乘积也可能极大或极小. 比如: $a$ = 0 , $x$ =2147483647 $b$ = -2 , $y$ =1 则, $x×b$ = -4294967294 这种情况,你的代码就会错 另外, `if` 的判断里还有一些细节的地方要改一下,比如应该用 `||` 连接每个判断. 综上,只需在 `if` 前加上: ```cpp long long int ans3=a*y; long long int ans4=x*b; ``` 再将 `if` 里的判断改为: ```cpp ans>=pow(2,31) || abs(ans2)>pow(2,31) || ans3<-pow(2,31) || ans4<-pow(2,31) `````` 即可 $\large \textrm{\color{#00e500}AC}$ ### 求互关!
by penghouqiao @ 2024-07-10 22:35:25


@[penghouqiao](/user/927730) 谢,已关
by HUTEHE @ 2024-07-12 10:36:18


@[HUTEHE](/user/1086575) 已回关
by penghouqiao @ 2024-07-12 12:43:53


|