class Solution {
public:
vector<int> target;
vector<vector<int>> res;
vector<vector<int>> combinationSum3(int k, int n) {
bk(k, n, 1);
return res;
}
void bk(int k, int n, int start) {
if (target.size() == k) {
if (s(target) == n)
res.push_back(target);
return;
}
for (int i = start; i <= 9 - (k - target.size()) + 1; i++) {
target.push_back(i);
if(s(target)>n){
target.pop_back();
break;
}
bk(k, n, i + 1);
target.pop_back();
}
}
int s(vector<int> target) {
int sum = 0;
for (int t : target) {
sum += t;
}
return sum;
}
};