Submission #1269510

#TimeUsernameProblemLanguageResultExecution timeMemory
1269510g4yuhgBurza (COCI16_burza)C++20
0 / 160
4 ms8768 KiB
//Huyduocdithitp #include <bits/stdc++.h> typedef int ll; #define pii pair<ll, ll> #define MP make_pair #define fi first #define se second #define TASK "subsequence" #define start if(fopen(TASK".in","r")){freopen(TASK".in","r",stdin);freopen(TASK".out","w",stdout);} #define faster ios_base::sync_with_stdio(false);cin.tie(NULL); #define N 100005 #define LOG 19 #define endl '\n' using namespace std; bool ghuy4g; ll getbit(ll mask, ll i) { return (mask >> i) & 1; } ll onbit(ll mask, ll i) { return mask | (1 << i); } ll n, m; ll a[30], b[30], id[30]; vector<ll> vt[30]; bool cmp(ll u, ll v) { return vt[u].size() < vt[v].size(); } bool cmp2(ll u, ll v) { return __builtin_popcount(u) < __builtin_popcount(v); } pii f[(1 << 20)]; pii dp(ll mask) { if (mask == (1 << m) - 1) { return {0, 0}; } if (f[mask].fi != -1) { return f[mask]; } pii res = {0, 0}; for (int j = 1; j <= m; j ++) { if (getbit(mask, j - 1) == 1) continue; pii xet = dp(onbit(mask, j - 1)); xet.se += b[j]; if (xet.se > a[xet.fi + 1]) { continue; } if (xet.se == a[xet.fi + 1]) { xet.se = 0; xet.fi ++ ; } if (xet.fi == n) { cout << "YES"; exit(0); } res = max(res, xet); } f[mask] = res; return res; } bool klinh; signed main(void) { faster; 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 mask = 0; mask < (1 << m); mask ++) { f[mask].fi = -1; } pii ans = dp(0); if (ans.fi >= n) { cout << "YES"; } else { cout << "NO"; } cerr << fabs(&klinh - &ghuy4g) / double(1024 * 1024); 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...