제출 #10435

#제출 시각아이디문제언어결과실행 시간메모리
10435gs14004은행 (IZhO14_bank)C++98
71 / 100
1074 ms744 KiB
#include <cstdio>
#include <vector>
using namespace std;

vector<int> a_bit[20];
int n,m,a[20],b[20];

void trial_bit(int v){
    int res = 0;
    for (int i=0; i<m; i++) {
        if((v>>i)&1) res += b[i];
    }
    for (int i=0; i<n; i++) {
        if(a[i] == res) a_bit[i].push_back(v);
    }
}

int f(int pos, int v){
    if(pos == n) return 1;
    // a & ~b == 0 일 때 a는 b의 부분집합
    int res = 0;
    for (int i=0; i<a_bit[pos].size(); i++) {
        if((a_bit[pos][i] & ~v) == 0){
            res |= f(pos+1,v^a_bit[pos][i]);
        }
    }
    return res;
}

int main(){
    scanf("%d %d",&n,&m);
    for (int i=0; i<n; i++) {
        scanf("%d",&a[i]);
    }
    for (int i=0; i<m; i++) {
        scanf("%d",&b[i]);
    }
    for (int i=0; i<(1<<m); i++) {
        trial_bit(i);
    }
    printf(f(0,(1<<m)-1)?"YES":"NO");
}

컴파일 시 표준 에러 (stderr) 메시지

bank.cpp: In function 'int f(int, int)':
bank.cpp:22:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i=0; i<a_bit[pos].size(); i++) {
                   ~^~~~~~~~~~~~~~~~~~
bank.cpp: In function 'int main()':
bank.cpp:31:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d",&n,&m);
     ~~~~~^~~~~~~~~~~~~~~
bank.cpp:33:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",&a[i]);
         ~~~~~^~~~~~~~~~~~
bank.cpp:36:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",&b[i]);
         ~~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...