题目描述
牛牛有最多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
Code
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,i,j;
cin>>n;
int type[51],taste[51];
for(i=0;i<n;i++)
cin>>type[i];
for(i=0;i<n;i++)
cin>>taste[i];
int total=0,number=0;
for(i=0;i<(n-1);i++)
{