1 条题解

  • 0
    @ 2026-8-15 18:07:31
    #include <iostream>
    using namespace std;
    
    int main(){
    	int w,n;
    	cin >> w >> n;
    	int p[n+1];
    	bool p1[n+1];
    	p[0] = -1;
    	for(int i=1;i <= n;i++){
    		cin >> p[i];
    		p1[i] = true;
    	}
    	
    	int ans=0;
    	for(int i=1;i <= n;i++){
    		int maxn=0;
    		if(!p1[i]) continue;
    		p1[i] = false;
    		for(int j=i+1;j <= n;j++){
    			if(p[j] > p[maxn] && p[i]+p[j] <= w && p1[j]){
    				maxn = j;
    			}
    		}
    		p1[maxn] = false;
    		ans++;
    	}
    	
    	cout << ans;
    	
    	return 0;
    }
    
    • 1

    信息

    ID
    5216
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    270
    已通过
    100
    上传者