BOJ 2629 양팔저울

1 개요[ | ]

BOJ 2629 양팔저울


2 C++[ | ]

C++
Copy
#include <iostream>
using namespace std;

int N, M, L;
int A[30];
bool D[31][40001];

void init() {
    int a;
    D[0][0] = true;
	for (int i=1; i<=N; i++) {
		D[i][0] = true;
	    a = A[i-1];
		for (int j=0; j<=40000; j++) {
			D[i][j] = D[i-1][j] || D[i-1][abs(j-a)];
			if (j+a <= 40000) {
			    D[i][j] |= D[i-1][j+a];
			}
		}
	}
}

int main() {
    cin >> N;
    for(int i=0; i<N; i++) {
        cin >> A[i];
    }
    init();
    cin >> M;
    for(int i=0; i<M; i++) {
        cin >> L;
        cout << (D[N][L] ? 'Y' : 'N') << ' ';
    }
}