如题。
题面中只保证答案内出现的所有数均在 64 位带符号整数的表示范围之内,而并没有表明中间结果是否符合。
于是,可以构造数据
输入
1/997+1/991+1/983+1/977+1/971+1/967+1/953+1/947+1/53-1/997-1/991-1/983-1/977-1/971-1/967-1/953-1/947
输出
1/53
但是我认为这不是出题人的本意。请求修改为保证答案及中间结果内出现的所有数(如果是分数即为分子和分母)均在 64 位带符号整数的表示范围之内。
如果按照当前理解,或许可以用 __int128,或者高精度。
另外,即使是这样,部分题解使用的是 int,而不是 long long,请求撤下。
如果是我的理解有误,或者没有注意到关键词,请指出,轻喷,谢谢。
另:按照当前理解的 Python 代码:
from fractions import Fraction
s=input()
if(s[0]=='-'):
s='(0'+s+')'
else:
s='(0+'+s+')'
s=s.replace('+',')+Fraction(').replace('-',')-Fraction(').replace('/',',')
print(eval(s))
另:如果情况属实,是否需要 @ 管理?