列表

详情


NC232157. F.桃飘火焰焰,梨堕雪漠漠。

描述

在某游戏平台打折之际,Eternity兴致勃勃地在该游戏平台上购买了n个不同的游戏,从1到n编号。
通过游览游戏论坛Eternity确定了完成每个游戏的准确时间并在这n个游戏中找到了m个特别喜欢的游戏,这些游戏有个共同的特点,那就是都和火焰元素、雪元素相关!这让Eternity爱不释手,这意味着Eternity将必须去完成这m个游戏。

但是当Eternity准备玩游戏时,Eternity发现快要期末考试了,Eternity需要忙着期末复习,但是Entity又经受不住游戏的诱惑,所以Eternity决定抽出部分时间去玩至少k个游戏。但是Eternity忙于玩游戏,所以请你求出Eternity最少的游戏时间。

输入描述


第一行输入三个整数n代表Eternity购买的总共的游戏数量,m代表n个游戏中Eternity喜欢的游戏数量,k代表Eternity至少要玩的游戏数量。

第二行包含n个整数a_i代表完成第i个游戏所需要的时间。

第三行包含m个整数b_i代表Eternity特别喜欢的游戏编号。

输出描述

输出一行一个整数代表Eternity最少的游戏时间。

示例1

输入:

5 2 3
1 2 3 4 5
2 4

输出:

7

说明:

Eternity很喜欢编号为2,4的游戏,他会花费2+4 = 6的时间先完成这两个游戏,完成这两个游戏过后,k - 2 = 1,所以只需要完成编号为1的游戏就能到达至少k个游戏的目标,所以总共花的时间为6 + 1 = 7。

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++ 解法, 执行用时: 4ms, 内存消耗: 404K, 提交时间: 2022-01-07 14:28:53

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,m,k,t=0,s;
	int a[1005];
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	for(int i=1;i<=m;i++){
		cin>>s;
		t+=a[s];
		a[s]=100001;
	}
	sort(a+1,a+n+1);
	for(int i=1;i<=k-m;i++){
		t+=a[i];
	}
	cout<<t;
}

上一题