Submission #1284417

#TimeUsernameProblemLanguageResultExecution timeMemory
1284417limon4ickBank (IZhO14_bank)C++20
19 / 100
64 ms932 KiB
/*#pragma GCC optimize("Ofast,no-stack-protector,unroint-loops,fast-math,O3")
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization("unroint-loops")
#pragma ("reroint") */
#include <bits/stdc++.h>
using namespace std;
//#define int long long
#define pb push_back
#define ins insert
#define F first
#define S second
const int mod = 1e9 + 7,N = 21,M = 1001;
int a[N],b[N];
int n,m;
vector<int>v[N];
int cnt[M],cntt[M];
bool ok = 0;
void rec(int i){
    if(i>n){
        for(int l = 1;l<M;l++){
            if(cnt[l]>cntt[l]) return;
        }
        ok = 1;
        return;
    }
    if(v[i].size()==0) return;
    int j = 0;
    int r = 0;
    for(auto x:v[i]){
        r++;
        if(x==-1) {
            rec(i+1);
            for(int k = j;k<r;k++){
                cnt[v[i][k]]--;
            }
            j = r + 1;
            continue;
        }
        cnt[x]++;
    }
}
signed main(){
    //freopen("justcoding.in","r",stdin);
    //freopen("justcoding.out","w",stdout);
    std::ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin >> n >> m;
    for(int i = 1;i<=n;i++) cin >> a[i];
    for(int i = 1;i<=m;i++) {cin >> b[i];cntt[b[i]]++;}
    for(int i = 1;i<=n;i++){
        for(int msk = 0;msk<(1 << m);msk++){
            int sum = 0;
            for(int j = 1;j<=m;j++){
                if((msk & (1 << (j-1)))) sum+=b[j];
            }
            if(sum==a[i]){
                for(int j = 1;j<=m;j++){
                    if((msk & (1 << (j-1)))) v[i].pb({b[j]});
                }
                v[i].pb({-1});
            }
        }
    }
    rec(1);
    if(ok) cout << "YES\n";
    else cout << "NO\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...