제출 #434514

#제출 시각아이디문제언어결과실행 시간메모리
434514MohammadAghilBank (IZhO14_bank)C++14
0 / 100
2 ms332 KiB
#include <bits/stdc++.h> 
using namespace std;
typedef long long ll;
#define rep(i,l,r) for(int i = (l); i < r; i++)
#define per(i,r,l) for(int i = (r); i >= l; i--)
#define all(x) x.begin(), x.end()
#define sz(x) (int)(x).size()
#define pb push_back
#define ff first
#define ss second 

const ll mod = 1e9 + 7, maxn = 20, inf = 1e9 + 5;

int a[maxn], c[maxn];
pair<int, int> dp[1 << maxn];

int main(){
    int n, m; cin >> n >> m;
    rep(i,0,n) cin >> a[i];
    rep(i,0,m) cin >> c[i];
    dp[0] = {0, 0};
    rep(b, 1, 1 << m){
        rep(i,0,m){
            if(b & (1 << i)){
                int t = a[dp[(b & (1 << i))].ff] - dp[(b&(1 << i))].ss;
                pair<int, int> p = dp[b];
                if(t == c[i]){
                    p.ff++;
                    p.ss = 0;
                }else if(t > c[i]){
                    p.ss += c[i];
                }else{
                    continue;
                }
                dp[b] = p;
                if(p.ff == n){
                    return cout << "YES\n", 0;
                }
            }
        }
    }
    cout << "NO\n";
    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...