N개의 정수로 이루어진 수열이 있을 때, 크기가 양수인 부분수열 중에서 그 수열의 원소를 다 더한 값이 S가 되는 경우의 수를 구하는 프로그램을 작성하시오.
import java.io.*;
import java.util.StringTokenizer;
public class Main {
static int count=0;
public static void subsequence(int[] sequence, int start, int sum, int s){
sum+=sequence[start];
if(sum==s)
count++;
for(int i=start+1; i<sequence.length; i++)
subsequence(sequence, i, sum, s);
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s=br.readLine();
StringTokenizer st=new StringTokenizer(s);
int n=Integer.parseInt(st.nextToken());
int sum=Integer.parseInt(st.nextToken());
s=br.readLine();
st=new StringTokenizer(s);
int[] sequence=new int[n];
for(int i=0; i<sequence.length; i++)
sequence[i]=Integer.parseInt(st.nextToken());
for(int i=0; i<sequence.length; i++)
subsequence(sequence, i, 0, sum);
System.out.println(count);
}
}