제출 #1228971

#제출 시각아이디문제언어결과실행 시간메모리
1228971darkdraven은행 (IZhO14_bank)C++20
19 / 100
196 ms436 KiB
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
#define nl "\n"
#define sp " "
#define name "test"
#define int long long

int n, m;
int a[21], b[21];

bool rec(int idN, int idM, int mask){
    if(idM == m){
        int tmp = 0;
        for(int i = 0; i<m; i++){
            if(mask & (1<<i)) tmp += b[i];
        }


        if(tmp == a[idN]){
            if(idN == n-1) return 1;
            return rec(idN+1, 0, mask);
        } return 0;
    }

    bool opt = rec(idN, idM+1, mask);
    bool opt2= rec(idN, idM+1, mask | (1<<idM));

    return max(opt, opt2);
}

void sub(){
    if(rec(0, 0, 0)) cout << "YES";
    else cout << "NO";
}

signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    //freopen(name".INP", "r", stdin);
    //freopen(name".OUT", "w", stdout);

    cin >> n >> m;
    for(int i = 0; i<n; i++) cin >> a[i];
    for(int j = 0; j<m; j++) cin >> b[j];

    sub();

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...