AC代码:
#include<stdio.h> int a[36]={11,8,11,16,1,2,6,10,17,10,6,5,2,19,4,7,5,5,15,3,15,7,11,9,17,9, 4,10,12,17,19,20,11,10,20,3}; int max=0; void dfs(int x,int k,int sum){ if(sum<=100){ if(max<k){ max=k; } } for(int i=x+1;i<36;i++){ if(sum>100) continue; dfs(i,k+1,sum+a[i]); } } int main(){ for(int i=0;i<36;i++){ dfs(i,1,a[i]); } printf("%d",max); return 0; }