编程题
### 问题描述
你是一家大型云计算公司的工程师,负责任务调度。公司的任务系统中,每个任务都有一个执行时间和一个优先级。为了提高用户的体验,你需要确定任务的执行顺序,使得总的平均等待时间最小。平均等待时间是每个任务从提交到开始执行的时间的平均值,优先级高的需要先执行。
任务:给定两个数组,一个表示每个任务的执行时间,另一个表示每个任务的优先级。你需要返回一个数组,表示为了最小化平均等待时间,任务的最优执行顺序。
### 输入格式
第一行包含一个整数 $ n $ ,表示任务的数量。
第二行包含 $ n $ 个整数,每个整数 $ t_i $ 表示第 $ i $ 个任务的执行时间。
第三行包含 $ n $ 个整数,每个整数 $ p_i $ 表示第 $ i $ 个任务的优先级。
### 输出格式
输出一个长度为 $ n $ 的数组,表示为了最小化平均等待时间,任务的最优执行顺序。任务的编号从 $1$ 开始。
### 样例输入
```
4
3 2 1 4
2 1 4 3
```
### 样例输出
```
3 4 1 2
```
### 评测数据范围
$1 \leq n \leq 10^5 $,$1 \leq p_i \leq 10^3 $ ,$ 1 \leq t_i \leq 10^3 $ 。