看不出来哪里算错了,请指教:

P1223 排队接水

正在打水的人不算等待,所以顺序改一下 ```cpp for (int i = 1; i <= n; i++) { sum += term; term += arr[i][0]; } ```
by _xm_ @ 2023-11-07 18:49:34


@[cmd137](/user/1146202) 等待时间,是指**后面的人等待的时间**(**接水的人不算**)。 比如:有 $4$ 个人,按照最短时间排列过后,第一个人接水 $1$ 分钟,后面的所有人等待的时间之和就是 $1\times (4-1)$ (接水的人不算)。 因此只要把: ```cpp for (int i = 1; i <= n; i++) { term += arr[i][0]; sum += term; } ``` 改成: ```cpp for (int i = 1; i <= n; i++) { term += arr[i][0]; sum += arr[i][0] * (n-i); } ``` 就行了。
by 2021zjhs005 @ 2023-11-07 18:50:13


@[_xm_](/user/821481) 豁然开朗,感谢回答
by cmd137 @ 2023-11-07 18:57:58


@[_xm_](/user/821481) 感谢!
by cmd137 @ 2023-11-07 18:58:22


|