#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void Count(vector<vector<int> > vec, int index,int n, int k, int& sum)
{
if (k < 0 || index > n)
return;
if (index == n)
{
if (k == 0)
sum++;
else
return;
}
else
{
for (int i = 0; i < 6; i++)
{
k -= vec[index][i];
Count(vec, index+1, n, k, sum);
k += vec[index][i];
}
}
}
int main()
{
int n, k;
while (cin >> n >> k)
{
long max = 0;
vector<vector<int> > vec(n, vector<int>(6));
for (int i = 0; i < n; i++)
{
for (int j = 0; j < 6; j++)
cin >> vec[i][j];
sort(vec[i].begin(), vec[i].end());
max += vec[i][5];
}
if (max < k)
cout << 0 << endl;
else
{
int sum = 0;
Count(vec, 0, n, k, sum);
cout << sum << endl;
}
}
return 0;
}
一直50,不知道哪里有问题,自己测都ok,求大佬指点一下
#依图科技##笔试题目#