题目描述
第五人格抽奖宝箱被称为珍宝。某一赛季珍宝池中共有 件道具。道具不可以重复获得。因此,第一次抽出某道具,可以将该道具放入仓库。之后抽出该道具,不会将该道具放入仓库,而是给予一定的碎片补偿。
道具共有五种品质,分别为金色、紫色、蓝色、绿色与白色,不同品质道具给予的碎片补偿数量不同,具体数量如下表所示。
| 品质 | 碎片补偿数量 | 品质代号 |
|---|---|---|
| 金色 | ||
| 紫色 | ||
| 蓝色 | ||
| 绿色 | ||
| 白色 |
某 E 一共抽了 次珍宝。现在告诉你珍宝池和某 E 的抽出道具情况,请问某 E 一共得到了多少碎片。
输入格式
输入共 行。
输入的第一行为两个正整数 ,分别代表珍宝池中道具的数量和某 E 抽珍宝次数。
接下来 行,每行一个字符串和一个整数,分别代表道具的名称和品质代号。
接下来 行,每行一个字符串,代表某 E 抽到的道具的名称。数据保证对应名称的道具在上面的 个道具中出现过。
输出格式
输出一行一个整数,代表可以获得的碎片数量。
样例 #1
样例输入 #1
5 10
Legendary 1
Epic 2
Rare 3
Uncommon 4
Common 5
Common
Uncommon
Common
Common
Uncommon
Legendary
Uncommon
Common
Uncommon
Rare
样例输出 #1
126
提示
【数据规模与约定】
对于前 的数据,保证 。
对于另外 的数据,保证 。
对于另外 的数据,保证 。
对于另外 的数据,所有的 件道具全部为金色品质。
对于 的数据,保证 。所有名字长度 。名字仅由英文大小写字母构成。保证不同道具名字不同。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int k = scanner.nextInt();
List<Item> itemList = new ArrayList<>();
for (int i = 0; i < n; i++) {
String name = scanner.next();
int order = scanner.nextInt();
Item item = new Item(name, order);
itemList.add(item);
}
int sum = 0;
for (int i = 0; i < k; i++) {
String name = scanner.next();
for (Item item : itemList) {
if (item.name.equals(name)) {
item.count++;
}
}
}
for (Item item : itemList) {
if (item.count > 1) {
if (item.order == 1) {
sum += (item.count - 1) * 2000;
} else if (item.order == 2) {
sum += (item.count - 1) * 1000;
} else if (item.order == 3) {
sum += (item.count - 1) * 200;
} else if (item.order == 4) {
sum += (item.count - 1) * 36;
} else if (item.order == 5) {
sum += (item.count - 1) * 6;
}
}
}
System.out.println(sum);
}
}
class Item {
public String name;
public int order;
public int count;
public Item(String name, int order) {
this.name = name;
this.order = order;
}
}