标签:nyoj
4 13 1 2 4 7
YES 2 4 7
01.
#include<iostream>
02.
#include<cstring>
03.
#include<cstdio>
04.
using
namespace
std;
05.
int
n,k,v,sum,a[25],b[25];
06.
void
dfs(
int
p)
07.
{
08.
if
(sum>=k)
09.
{
10.
if
(sum==k)
11.
{
12.
if
(!v)
13.
{
14.
v=1;
15.
cout<<
"YES"
<<endl;
16.
}
17.
for
(
int
i=0;i<n;i++)
18.
if
(b[i])
19.
cout<<a[i]<<
"
"
;
20.
cout<<endl;
21.
}
22.
return
;
23.
}
24.
for
(
int
i=p;i<n;i++)
25.
{
26.
sum+=a[i];
27.
b[i]=1;
28.
dfs(i+1);
29.
sum-=a[i];
30.
b[i]=0;
31.
}
32.
}
33.
int
main()
34.
{
35.
while
(
scanf
(
"%d%d"
,&n,&k)==2)
36.
{
37.
v=0;
38.
memset
(b,0,
sizeof
(b));
39.
for
(
int
i=0;i<n;i++)
40.
cin>>a[i];
41.
sum=0;
42.
dfs(0);
43.
if
(!v)
44.
cout<<
"NO"
<<endl;
45.
}
46.
return
0;
47.
}
标签:nyoj
原文地址:http://blog.csdn.net/justesss/article/details/38038421