深搜枚举所有可能方案
#include<iostream>
using namespace std;
int ans = 0;
void dfs(int index, int a, int b){
if(index > 7){//七个小朋友都安排完了,则结束
if(a == b && !a) ans++;//两种糖果都恰好分完的为一种方案
return;
}
for(int i = 0; i <= a; i++){
for(int j = 0; j <= b; j++){
if(i + j > 1 && i + j < 6) dfs(index + 1, a - i, b - j);//满足条件的为当前小朋友分完,继续下一位
}
}
}
int main(){
dfs(1, 9, 16);
printf("%d", ans);
return 0;
}