Submission #1089376

#TimeUsernameProblemLanguageResultExecution timeMemory
1089376vjudge1Bank (IZhO14_bank)C++17
100 / 100
184 ms102684 KiB
//#pragma GCC optimize(" unroll-loops") //#pragma gcc optimize("Ofast") //#pragma GCC optimization("Ofast") //#pragma optimize(Ofast) #include <map> #include <set> #include <list> #include <cmath> #include <ctime> #include <deque> #include <queue> #include <stack> #include <string> #include <bitset> #include <cstdio> #include <limits> #include <vector> #include <climits> #include <cstring> #include <cstdlib> #include <fstream> #include <numeric> #include <sstream> #include <cassert> #include <iomanip> #include <iostream> #include <algorithm> #include <stdio.h> #include <fstream> #include <unordered_map> using namespace std; typedef long long ll; typedef long double ld; #define all(x) x.begin(),x.end() #define pb push_back #define ent "\n" const int maxn = (int)2e6 + 13; const ll inf = (long long)1e18 + 20; const int mod = (int)1e9 + 7; int gcd(int x,int y){while(1){if(x > y)swap(x,y);if(!x)return y;y %= x;}} int n,a[maxn]; int m,b[maxn]; vector<int> g[maxn]; int h[21][21]; int used[21][maxn]; void get(int pos,int mask){ if(pos == n + 1){ cout << "YES\n"; exit(0); } if(used[pos][mask]){ return; } used[pos][mask] = 1; for(auto cur_mask : g[a[pos]]){ if((cur_mask & mask))continue; get(pos + 1,(cur_mask | mask)); } } void solve(){ cin >> n >> m; for(int i = 1 ; i <= n ; i ++){ cin >> a[i]; } for(int i = 1 ; i <= m ; i ++){ cin >> b[i]; } for(int i = 1 ; i < (1ll << m) ; i ++){ ll sum = 0; for(int j = 0 ; j < m ; j ++){ if((i >> j)&1){ sum += b[j + 1]; } } g[sum].pb(i); } get(1,0); cout << "NO"; } int main(){ // freopen("ones.in" , "r" , stdin) ; // freopen("ones.out" , "w" , stdout) ; ios_base::sync_with_stdio(0); cin.tie(0); int t = 1; //cin >> t; while(t --){ solve(); } 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...