题目原文:
如果vxj>vyj,他将会付给你vxj-vyj元钱;
否则,那么你需要付给商人vxj-vyj元钱。
模拟代码:
ans表示钱数.
if(x > y)
ans += x-y;
else
ans -= x-y;
如果x>y,则x-y>0.
如果x<y,则x-y<0.
如果x<y,则-(x-y)=y-x>0.
因此"我"无论如何都是赚钱的,永远都不会付给别人钱.
除非手续费1元.
经过修改和检查,发现是题目给出的有误,
if(x > y)
ans += x-y;
else
ans += x-y;
两种情况的代码应当一样,
或者两种情况完全相反,至少不能像原题目一样.
另外还需要考虑到手续费.具体代码:
add(x,y,v[y]-v[x]+1);
这里的v[y]-v[x]是花费,x大时为负数赚钱,y大时为正数花钱.
这里反过来是因为我们要求的是花费而非钱数.
花费与钱数的符号正好相反.