第三题维护一个负数的集合,以及负数的和与非负数的和。每次移动,抛开第一位,所有负数减一,正数加一,以此维护负数与正数的和。第一位变成相应的|a[i]-n|插入到负数的集合里。同时若负数的集合中存在负数变成0,则从集合中丢掉。复杂度nlog