在我们从后往前做时,找到重复加的那个人的工资时,一定不能直接/2。错误代码
for(int i=n;i>=1;i--) { sum-=q.size(); if(b[i]) c[i]+=k,sum+=k,q.push(i); if(!q.empty()&&q.front()-i>=k) q.pop(); c[i]+=sum; if(b[i]) c[i]/=2; }
应为我们有可能把前面和后面的都砍掉了,所以要老实的-k。
if(b[i]) c[i]-=k;