Submission #92952

#TimeUsernameProblemLanguageResultExecution timeMemory
92952Nodir_BobievBank (IZhO14_bank)C++14
52 / 100
1073 ms16632 KiB
# include <iostream> # include <vector> # include <set> # define fi first # define se second using namespace std; int a[30], b[30]; int s[30000]; int n, m; set < int > vc[30000]; int main() { cin >> n >> m; for (int i = 1; i <= n; i++){ cin >> a[i]; a[i] += a[i - 1]; } for (int i = 0; i < m; i++){ cin >> b[i]; } for (int i = 1; i <= a[n]; i++){ s[i] = s[i - 1]; if(i == a[s[i] + 1]) s[i]++; } vc[0].insert(0); for (int i = 0; i < a[n]; i++){ for (auto mask: vc[i]){ for (int k = 0; k < m; k++){ if( mask & (1 << k) ) continue; int mask1 = mask | (1 << k); if(s[i + b[k]] == s[i]) vc[i + b[k]].insert(mask1); else if(a[s[i + b[k]]] == i + b[k] && s[i + b[k]] == s[i] + 1) vc[i + b[k]].insert(mask1); } } vc[i].clear(); } if(vc[a[n]].empty() == false) cout << "YES"; else cout << "NO"; } /* 1 5 8 4 2 5 1 3 2 6 9 10 5 4 8 6 3 11 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...