营养膳食(贪心)
#include<iostream> #include<algorithm> using namespace std; struct food { int a; int b; }f[210]; bool cmp(food x,food y) { return x.a>y.a; } int kind[110]; int main() { int n,m,k; cin>>n>>m>>k; for(int i=1;i<=k;i++) { cin>>kind[i]; } for(int i=1;i<=n;i++) { cin>>f[i].a>>f[i].b; } sort(f+1,f+n+1,cmp); int ans=0; for(int i=1;i<=n;i++) { if(m==0) { break; } if(kind[f[i].b]==0) { continue; } else { kind[f[i].b]--; ans+=f[i].a; m--; } } cout<<ans; return 0; }