import java
.io
.BufferedReader
;
import java
.io
.IOException
;
import java
.io
.InputStream
;
import java
.io
.InputStreamReader
;
import java
.util
.StringTokenizer
;
public class S7_12 {
static int[] rec
= new int[1005];
static int n
, m
;
static boolean ok
;
public static void main(String
[] args
) throws IOException
{
Reader
.init(System
.in
);
n
= Reader
.nextInt();
for (int i
= 0; i
< n
; i
++) {
rec
[i
] = Reader
.nextInt();
}
m
= Reader
.nextInt();
f("",0,0);
if (!ok
)System
.out
.println("None");
}
static void f(String str
, int num
,int pos
) {
if (num
> m
)
return;
if (num
== m
) {
System
.out
.println(str
.substring(0,str
.length() - 1));
ok
= true;
}
for (int i
= pos
; i
< n
; i
++) {
f(str
+ rec
[i
] + " ", num
+ rec
[i
],i
+1);
}
}
}
class Reader {
static BufferedReader reader
;
static StringTokenizer tokenizer
;
static void init(InputStream input
) {
reader
= new BufferedReader(new InputStreamReader(input
));
tokenizer
= new StringTokenizer("");
}
static String
next() throws IOException
{
while (!tokenizer
.hasMoreTokens()) {
tokenizer
= new StringTokenizer(reader
.readLine());
}
return tokenizer
.nextToken();
}
static int nextInt() throws IOException
{
return Integer
.parseInt(next());
}
}
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std
;
int arr
[1005];
int vec
[1005];
int m
,n
;
bool flag
=true
;
void bfs(int index
,int now
,int in
){
if(now
==m
){
if(!flag
)printf("\n");
for(int i
=0;i
<in
-1;i
++){
printf("%d ",vec
[i
]);
}
printf("%d",vec
[in
-1]);
flag
=false
;
return;
}
if(now
>m
||index
>=n
)return;
vec
[in
]=arr
[index
];
bfs(index
+1,now
+arr
[index
],in
+1);
bfs(index
+1,now
,in
);
}
int main(){
cin
>>n
;
for(int i
=0;i
<n
;i
++){
cin
>>arr
[i
];
}
cin
>>m
;
bfs(0,0,0);
if(flag
){
printf("None");
}
return 0;
}
转载请注明原文地址: https://win8.8miu.com/read-11815.html