代码如下(自己看:
#include<bits/stdc++.h>
using namespace std;
struct s{
int x;
int money;
};
void maopao(s g[1000],int n)
{
for(int i=0;i<n-1;i++){
for(int j=0;j<n-1-i;j++){
if(g[j].money<g[j+1].money){
s tmp=g[j];
g[j]=g[j+1];
g[j+1]=tmp;
}
}
}
}
int main(){
int sumMoney;
int n;
s g[10000];
int i,j;
cin>>sumMoney>>n;
for(int i=0;i<n;i++){
cin>>g[i].x;
}
for(int i=0;i<n;i++){
cin>>g[i].money;
}
maopao(g,n);
int t[10000]={0};
for(int i=0;i<n;i++){
int tag=0;
if(t[g[i].x]==0){
t[g[i].x]=1;
}else{
for(int j=g[i].x-1;j>0;j--){
if(t[j]==0){
tag=1;
t[j]=1;
break;
}
}
if(tag==0){
sumMoney-=g[i].money;
}
}
}
cout<<sumMoney<<endl;
return 0;
}
最后,给个赞吧!!!