제출 #973465

#제출 시각아이디문제언어결과실행 시간메모리
973465amirujuz은행 (IZhO14_bank)C++14
0 / 100
5 ms16732 KiB
#include <bits/stdc++.h> #define allr v.rbegin(), v.rend() #define sllr s.rbegin(), s.rend() #define all v.begin(), v.end() #define sll s.begin(), s.end() #define pii pair <int, int> #define int long long #define pb push_back #define pp pop_back #define sc second #define fr first using namespace std; const int N=1e3+7, INT=1e6+7, X=2097152, INf=1e9+7, INF=INT64_MAX; signed main() { ios_base::sync_with_stdio(false); cout.tie(NULL); cin.tie(NULL); int n, m, i, mask, sum; cin >> n >> m; vector <int> v(n), k(m), dp(X), p[n]; map <int, int> mp; for (i=0; i<n; i++) { cin >> v[i]; } for (i=0; i<m; i++) { cin >> k[i]; } for (mask=0; mask < (1<<m); mask++) { sum=0; for (i=0; i<m; i++) { if (mask&(1<<i)) { sum+=k[i]; } } for (i=0; i<n; i++) { if (v[i]==sum) p[i].pb(mask); } } for (i=1; i<X; i++) { dp[i]=-1; } for (i=0; i<n; i++) { for (mask=(1<<m)-1; mask>=0; mask--) { if (dp[mask] != -1){ for (auto j: p[i]) { if (!mask&j) { dp[mask|j]=dp[mask]+1; } if (dp[mask|j]==n) { cout << "YES"; return 0; } } } } } cout << "NO"; }

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

bank.cpp: In function 'int main()':
bank.cpp:46:10: warning: suggest parentheses around operand of '!' or change '&' to '&&' or '!' to '~' [-Wparentheses]
   46 |      if (!mask&j) {
      |          ^~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...