编程题
### 问题描述 小兰最近发现了一个福利丰厚的小卖部,店主实行了一个特殊的 "买一赠一" 活动。小卖部的每个商品都有一个价格 $c_i$ 和结账所需时间 $t_i$(秒)。而小兰在结账的同时,如果店主正忙于处理其他商品,她就有机会在 $1$ 秒内 "免费" 获得另一件商品。 小兰可以决定商品的结账顺序,以便在店主处理某些商品的过程中,她可以 "免费" 获得尽可能多的商品。如果 $t_i$ 是 $0$,意味着当店主处理第 $i$ 件商品时,小兰无法 "免费" 获得任何商品。 请问,小兰应该如何安排商品的结账顺序,以便她需要支付的最低金额是多少? ### 输入格式 输入的第一行包含一个整数 $n$($1 \leq n \leq 2000$),表示小卖部中商品的数量。 接下来的 $n$ 行,每行描述一个商品,包含两个整数 $t_i$ 和 $c_i$($0 \leq t_i \leq 2000$,$1 \leq c_i \leq 10^9$)。其中 $t_i$ 表示结账这个商品所需的时间,$c_i$ 表示这个商品的价格。 ### 输出格式 输出一个整数,表示小兰需要支付的最低金额。 ### 样例输入 ```text 3 2 3 1 2 2 1 ``` ### 样例输出 ```text 1 ``` ### 样例解释 在这个样例中,小兰可以先让店主处理价格为 $1$ 的商品,同时免费获取价格为 $2$ 和价格为 $3$ 的物品。
查看答案
赣ICP备20007335号-2