维护 sum 数组时,你这么写就错了:
sum
for (int i=1;i<=n;i++) sum[i] = i + sum[i-1] + read();
应是:
for (int i=1;i<=n;i++) sum[i] = 1 + sum[i-1] + read();