今天开摆了,面的国内四个厂都进三面了应该
许愿一下Oceanbase
CF 416C
对给的米还有桌子的容量排个序就好了,简单贪心
struct group{
int c,p,id;
};
struct table{
int cap,id;
};
void solve(){
int n;
cin>>n;
vector<group>arr(n);
for(int i=0;i<n;++i){
cin>>arr[i].c>>arr[i].p;
arr[i].id=i;
}
int k;
cin>>k;
vector<table>r(k);
for(int i=0;i<k;++i){
cin>>r[i].cap;
r[i].id=i;
}
sort(r.begin(),r.end(),[&](table a,table b){
return a.cap<b.cap;
});
sort(arr.begin(),arr.end(),[&](group a ,group b){
return a.p>b.p;
});
ll ans=0;
vector<bool>used(k);
vector<pair<int,int>>trace;
for(int i=0;i<n;++i){
for(int j=0;j<k;++j){
if(!used[j]&&r[j].cap>=arr[i].c){
ans+=arr[i].p;
used[j]=1;
trace.push_back({arr[i].id+1,r[j].id+1});
break;
}
}
}
cout<<trace.size()<<' '<<ans<<'\n';
for(auto& k:trace){
cout<<k.first<<' '<<k.second<<'\n';
}
return;
}