제출 #975282

#제출 시각아이디문제언어결과실행 시간메모리
975282v_matei은행 (IZhO14_bank)C++17
100 / 100
106 ms8792 KiB
#include <bits/stdc++.h> #include <unordered_map> #include <vector> #define ll long long #define ull unsigned long long #define pii std::pair<int, int> #define IO (std::string) "" std::ifstream fin(IO + ".in"); std::ofstream fout(IO + ".out"); #define NMAX 21 int n, m; int a[NMAX], b[NMAX]; void citire() { std::cin >> n >> m; for (int i = 0; i < n; i++) std::cin >> a[i]; for (int i = 0; i < m; i++) std::cin >> b[i]; } int main() { citire(); std::vector<int> curr(1 << m, -1), l(1 << m, -1); curr[0] = l[0] = 0; for (int mask = 0; mask < (1 << m); mask++) { for (int j = 0; j < m; j++) { if (!(mask & (1 << j))) continue; int prev = mask ^ (1 << j); if (curr[prev] == -1) continue; int aux = l[prev] + b[j]; if (aux < a[curr[prev]]) { curr[mask] = curr[prev]; l[mask] = aux; } else if (aux == a[curr[prev]]) { curr[mask] = curr[prev] + 1; l[mask] = 0; } } if (curr[mask] == n) { std::cout << "YES"; return 0; } } std::cout << "NO"; 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...