1 条题解

  • 0
    @ 2025-9-10 9:00:37

    C++ :

    #include<iostream>
    #include<algorithm>
    using namespace std;
    const int N = 105;
    struct food{
    	int fat,cat;
    };
    food a[2*N];
    int b[N];
    
    bool comp(food x,food y){
    	return x.fat>y.fat;
    }
    
    int main(){
    	int n,m,k,ans=0;
    	cin>>n>>m>>k;
    	for (int i=1; i<=k; i++) cin>>b[i];
    	for (int i=1; i<=n; i++) cin>>a[i].fat>>a[i].cat;
    	sort(a+1,a+n+1,comp);
    	for (int i=1,x=1; i<=n && x<=m; i++)
    		if (b[a[i].cat]){
    			ans+=a[i].fat;
    			b[a[i].cat]--;
    			x++;
    		}
    	cout<<ans<<endl;
    	return 0;
    }
    
    • 1

    信息

    ID
    3573
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者