제출 #1089233

#제출 시각아이디문제언어결과실행 시간메모리
1089233pablo777은행 (IZhO14_bank)C++17
71 / 100
1029 ms16980 KiB
/** * data : 09.07.2024 * **/ #include <bits/stdc++.h> // #include "algo/turnikmen.h" using namespace std; #define int long long #define bitt __builtin_popcountll #define bitzero __builtin_clz #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") void fReopen () { #ifndef ONLINE_JUDGE freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif } const int N = 2e5 + 4; int n, m, a[N], b[N], ok, x; vector<int> used[N]; bool solve (int id, int res) { // cout << res << ' ' << id << '\n'; if (id == n) {return 1;} bool ok = 0; for (auto mask : used[a[id]]) { // cout << ' ' << (mask & res )<< ' ' << mask << '\n'; if ((mask & res) == 0) ok |= solve(id + 1, mask | res); } // cout << ok << '!'; return ok; } signed main (/* time : 9:17 AM */) { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); //fReopen(); cin >> n >> m; for (int i = 0; i < n; i++) { cin >> a[i]; } for (int i = 0; i < m; i++) cin >> b[i]; for (int mask = 0; mask < (1 << m); mask++) { int res = 0; for (int i = 0; i < m; i++) { if (mask >> i & 1) res += b[i]; } used[res].push_back(mask); } bool ok = 1; for (int i = 0; i < n && ok; i++) ok &= (used[a[i]].size() != 0); if (!ok) { cout << "NO"; return 0; } sort(a, a + n, [&] (int x, int y) { return (used[x].size()) < used[y].size(); }); // for (int i = 0; i < n; i++) { // cout << a[i] << ' '; // for (auto to : used[a[i]]) { // for (int j = 0; j < m; j++) { // cout << (to >> j & 1); // } // cout << ' '; // } // cout << endl; // } cout << (solve(0, 0) ? "YES" : "NO"); }

컴파일 시 표준 에러 (stderr) 메시지

bank.cpp: In function 'void fReopen()':
bank.cpp:20:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   20 |         freopen("input.txt", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
bank.cpp:21:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   21 |         freopen("output.txt", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...