标签:否则 ring online stdio.h 表示 内存 http 限制 上传
4 13 1 2 4 7
YES 2 4 7
1 #include<stdio.h> 2 #include<string.h> 3 int a[22],b[22]; 4 int n,k,flag; 5 void dfs(int x,int sum) 6 { 7 int i; 8 if(sum > k) return; //此时不需要再相加了,已经超了 9 if(x==n) 10 { 11 if(sum == k) 12 { 13 flag = 1; 14 printf("YES\n"); 15 for(i=0; i<n; i++) 16 { 17 if(b[i]) printf("%d ",a[i]); 18 } 19 printf("\n"); 20 return; 21 } 22 return; 23 } 24 b[x] = 0; 25 dfs(x+1,sum); //sum不需要+a[x]时,b[x] = 0 26 b[x] = 1; 27 dfs(x+1,sum+a[x]); //sum+a[x]时,b[x] = 1 28 } 29 int main() 30 { 31 int i; 32 while(scanf("%d%d",&n,&k)!=EOF) 33 { 34 flag = 0; 35 memset(b,0,sizeof(b)); 36 for(i=0; i<n; i++) 37 scanf("%d",&a[i]); 38 dfs(0,0); 39 if(!flag) 40 printf("NO\n"); 41 } 42 return 0; 43 }
标签:否则 ring online stdio.h 表示 内存 http 限制 上传
原文地址:https://www.cnblogs.com/-skyblue/p/9350864.html