#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <string.h>
#include <queue>
#include <map>
#include <math.h>
#include <set>
#include <vector>
#include <stack>
#define ll long long
#define mod 1000000007
const int maxn=1e6+5;
const int INF = 0x3f3f3f3f;
const int NINF = -INF - 1;
using namespace std;
int num[100];
int vor[100];//装箱
ll n,m,x,w;
ll dfs(ll y)
{
    if(y==n+1) return 1;
    for(ll i=1;i<=min(y,x);i++)
    {
        if(vor[i]+num[y]<=w)
        {
         vor[i]=vor[i]+num[y];
         if(dfs(y+1)) return 1;
         vor[i]=vor[i]-num[y];
        }
    }
    return 0;
}

int main()
{
    ll t;
    cin>>t;
    while(t--)
    {
        cin>>n>>x>>w;
        for(ll i=1;i<=n;i++)
        {
            cin>>num[i];
            if(num[i]>w)
            {
               printf("No\n");
               goto mmp;
            }
        }
        for(ll i=1;i<=x;i++) vor[i]=0;
        if(dfs(1)) printf("Yes\n");
        else       printf("No\n");
        mmp:continue;
    }
    return 0;
}
大佬这个代码和你的一样了,为啥有问题啊..