#1590. 任务时间表问题

任务时间表问题

题目描述

一个单位时间任务是恰好需要一个单位时间完成的任务。给定一个单位时间任务的有限集S\red{S}。关于S\red{S }的一个时间表用于描述S\red{S} 中单位时间任务的执行次序。时间表中第1\red{1} 个任务从时间0\red{0} 开始执行直至时间1\red{1} 结束,第2\red{2 }个任务从时间1\red{1} 开始执行至时间2\red{2} 结束,…,第n\red{n}个任务从时间n1\red{n-1 }开始执行直至时间n\red{n}结束。 具有截止时间和误时惩罚的单位时间任务时间表问题可描述如下。

(1) n\red{n} 个单位时间任务的集合S=1,2,,n\red{S={1,2,…,n}}

(2) 任务i\red{i}的截止时间di\red{d_{i}} ,1in\red{1≤i≤n},1din\red{1≤d_{i}≤n},即要求任务i\red{i} 在时间di\red{d_{i}}之前结束;

(3) 任务i\red{i} 的误时惩罚wi\red{w_{i}} ,1in\red{1≤i≤n},即任务i\red{i} 未在时间di\red{d_{i}}之前结束将招致wi\red{w_{i}}的惩罚;

若按时完成则无惩罚。任务时间表问题要求确定S\red{S }的一个时间表(最优时间表)使得总误时惩罚达到最小。

编程任务:给定n\red{n} 个单位时间任务,各任务的截止时间di\red{d_{i}} ,各任务的误时惩罚wi\red{w_{i}} ,1in\red{1≤i≤n},编程计算最优时间表。

输入格式

第一行是正整数n\red{n},表示任务数。接下来的2\red{2}行中,每行有n\red{n}个正整数,分别表示各任务的截止时间和误时惩罚。

输出格式

计算出最小总误时惩罚。

样例

输入样例

7
4 2 4 3 1 4 6
70 60 50 40 30 20 10

输出样例

50