Submission #897492

#TimeUsernameProblemLanguageResultExecution timeMemory
897492NurislamBank (IZhO14_bank)C++14
71 / 100
1099 ms3376 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back #define ff first #define ss second #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() #define int long long ///* __ __ __ */ ///* ====== _ /| /| __ _ / | | /| | @ | | | | / /| |\ | / | | @ | / */ ///* \- || |_| |_ / |/ | | | |_ |- | |--| /-| | | \ \ |==| |- /=| | \ | | |--| | |- */ ///* || | | |_ / | |__| _| |_ \__ | | / | |__ | __| | | | \ / | | \| \__ | | | | \ */ ///* typedef vector<int> vi; typedef pair<int,int> pii; typedef vector<pii> vii; typedef vector<vi> vv; const int N = 1e6+4, mod = 1e9+7; int n, m, ans = 0; int a[21]; map<multiset<int>, bool>mp; vi us(21); multiset<int> b; bool ok = 1; void ch(){ if(mp[b] || !ok)return; mp[b]=true; int it = 0; for(int i:us){ if(i == 0)break; it++; } if(it == n){cout << "YES\n";ok = 0;return;} multiset<int> st = b; for(int ms = 1; ms < (int)(1<<b.size()); ms++){ vi res; int cnt = 0, sum = 0; for(int i:b){ if((ms>>cnt) & 1){ sum+=i; res.pb(i); } cnt++; //~ cout << ((ms >> cnt)&1); if(sum > a[it])break; } //~ cout << endl; if(sum == a[it]){ for(int i:res)b.erase(b.find(i)); us[it] = 1; ch(); us[it] = 0; b = st; } } } void solve(){ cin >> n >> m; for(int i = 0; i < n; i++)cin >> a[i]; for(int i = 0; i < m; i++){int x;cin >> x;b.insert(x);} ch(); if(ok)cout << "NO\n"; } main(){ ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); int test = 1; //~ cin >> test; while(test--){ solve(); } }

Compilation message (stderr)

bank.cpp:63:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   63 | main(){
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...