#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;
}
大佬这个代码和你的一样了,为啥有问题啊..