제출 #737236

#제출 시각아이디문제언어결과실행 시간메모리
737236mariaclara은행 (IZhO14_bank)C++17
0 / 100
1067 ms212 KiB
#include<bits/stdc++.h> using namespace std; const int MAXN = (1<<20)+10; #define pb push_back int n, m, salary[25], note[25]; bool dp[MAXN]; bool solve(int i, int mask) { // Marca se da pra formar os valores de 1 a i if(i>n) return 1; if(dp[mask]) return 0; dp[mask] = 1; for(int l=1, r=m; l<=r; ) { if(mask&(l-1)) l++; if(mask&(r-1)) r--; if(note[l]+note[r]<salary[i]) l++; else if(note[l]+note[r]>salary[i]) r--; else if(solve(i+1, mask+(1<<l-1)+(1<<r-1))) return 1; } return 0; } int main() { cin >> n >> m; for(int i = 1; i <= n; i++) cin >> salary[i]; for(int i = 1; i <= m; i++) cin >> note[i]; sort(note+1, note+1+m); if(solve(1,0)) cout << "YES\n"; else cout << "NO\n"; }

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

bank.cpp: In function 'bool solve(int, int)':
bank.cpp:21:38: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
   21 |         else if(solve(i+1, mask+(1<<l-1)+(1<<r-1))) return 1;
      |                                     ~^~
bank.cpp:21:47: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
   21 |         else if(solve(i+1, mask+(1<<l-1)+(1<<r-1))) return 1;
      |                                              ~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...