牛牛的背包
题号:NC21621
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

牛牛有最多50个物品,每个物品有一个type标号,并且有一个taste值,现在要求选择若干个物品放进背包使得x * y最大,x为选择的不同type的数量,y为总的taste值之和 

输入描述:

第一行输入一个整数n表示物品的数量(1 ≤ n ≤ 50)

第二行输入 n个整数typei表示每个物品的类型(1 ≤ typei ≤ 100)

第三行输入n个整数tastei(-100000 ≤ tastei ≤ 100000)

输出描述:

输出一个整数
示例1

输入

复制
2
1 2
4 7

输出

复制
22
示例2

输入

复制
2
1 1
-1 -1

输出

复制
0
示例3

输入

复制
3
1 2 3
7 4 -1

输出

复制
30

备注:

子任务一30分:n,m<=10

子任务二30分:n,m<=20

子任务三40分:n,m<=50