编程题
### 问题描述
小兰最近发现了一个福利丰厚的小卖部,店主实行了一个特殊的 "买一赠一" 活动。小卖部的每个商品都有一个价格 $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$ 的物品。