1 solutions

  • 0
    @ 2025-12-9 16:04:55

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    int m,n,ans,sum,a[22],b[10005];
    void f(int x,int y,int z)
    {
        if(y==n) {b[z]++;return ;}
        for(int i=x+1;i<=m;i++)
            f(i,y+1,z+a[i]);
    }
    int main()
    {   
        cin>>m>>n;
        for(int i=1;i<=m;i++)
            cin>>a[i];
        f(0,0,0);//在第几个位置,一共收集了几个,已经收集的和 
        for(int i=1;i<=10000;i++)
            sum=max(b[i],sum);
        for(int i=10000;i>=1;i--)
            if(b[i]==sum){
                cout<<i;
                return 0;
            } 
    }
    
    • 1

    Information

    ID
    1028
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    10
    Tags
    (None)
    # Submissions
    4
    Accepted
    3
    Uploaded By