SWUST-最多苹果数量

2023-12-21 12:53:44

显然每次装重量最小的苹果是最优的。

代码如下(c++)

#include<iostream>
#include<algorithm>
using namespace std;
int main() {
    int m, n,sum=0;
    cin >> m >> n;
    int* arr = new int[n];
    for (int i = 0; i < n; i++) cin >> arr[i];
    sort(arr, arr + n, less<int>());
    for (int i = 0; i < n; i++) {
        if (sum + arr[i] > m) {
            cout << i << endl;
            return 0;
        }
        else {
            sum += arr[i];
        }
    }
    cout << n << endl;
    return 0;
}

(c)

#include<stdio.h>
#include<stdlib.h>
int main(){
    int m,n,sum=0;
    scanf("%d %d",&m,&n);
    int *arr=(int *)malloc(n*sizeof(int));
    for (int i=0;i<n;i++) scanf("%d",arr+i);
    for (int i=0;i<n-1;i++){
        for (int j=0;j<n-1-i;j++){
            if (arr[j]>arr[j+1]){
                int temp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=temp;
            }
        }
    }
    for (int i=0;i<n;i++){
        if (sum+arr[i]>m){
            printf("%d\n",i);
            return 0;
        }else {
            sum+=arr[i];
        }
    }
    printf("%d\n",n);
    return 0;
}

文章来源:https://blog.csdn.net/2302_79277225/article/details/135120370
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。