#include<iostream>
#include<stdio.h>
#include <vector>
#include<queue>
#include <functional>
#include<algorithm>
#include<fstream>
#define N 200005
int n,m;
struct node
{
int w;
int p;
};
std::vector<node> nodes;
node tmp;
long long sum;
std::priority_queue<int ,std::vector<int> , std::greater<int> > q;
bool cmp(const node& l,const node& r)
{
if(l.w>r.w){
return true;
}else if(l.w==r.w){
return l.p>r.p;
}
return false;
}
int main()
{
//std::fstream fin("1.txt");
while (std::cin>>n>>m){
for(int i=0;i!=n;i++){
// std::cin>>tmp.w;
scanf("%d",&tmp.w);
tmp.p=-1;
nodes.push_back(tmp);
}
for(int i=0;i!=m;i++){
//std::cin>>tmp.w;
scanf("%d",&tmp.w);
nodes.push_back(tmp);
}
for(int i=0;i!=m;i++){
//std::cin>>nodes[n+i].p;
scanf("%d",&nodes[n+i].p);
}
std::sort(nodes.begin(),nodes.end(),cmp);
bool flag=true;
int nn=0;
for(int i=0;i!=nodes.size()&&nn!=n;i++){
if(nodes[i].p==-1){
if(q.empty()){
flag=false;
break;
}else{
nn++;
sum+=q.top();;
q.pop();
}
}else{
q.push(nodes[i].p);
}
}
if(flag=false){
std::cout<<"No"<<std::endl;
}else{
std::cout<<sum<<std::endl;
}
sum=0;
nodes.clear();
while (!q.empty()){
q.pop();
}
}
}
HDU-4544湫湫系列故事——消灭兔子
最新推荐文章于 2020-03-17 14:42:13 发布