最大值和最小值相加之后超过了W那么继续相加最后剩下来的最大值和最小值相加怎么实现
查看原帖
最大值和最小值相加之后超过了W那么继续相加最后剩下来的最大值和最小值相加怎么实现
757572
aespa_karina楼主2022/7/29 12:24
#include<iostream>
using namespace std;
int main(){
    int w,n,p[20001],f;
    cin>>w>>n;
    for(int i=1;i<=n;i++){
        cin>>p[i];
    }
    for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++)
            if(p[i]<p[j]){
                swap(p[i],p[j]);
            }
    }
    for(int i=1;i<=n;i++){
        if(p[i]+p[n]<=w){
            n=n+1;
        }
        n--;
    }
    cout<<n;
    return 0;
}
2022/7/29 12:24
加载中...