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') << ' ';
}
}
편집자 Jmnote
로그인하시면 댓글을 쓸 수 있습니다.