Submission #848642

#TimeUsernameProblemLanguageResultExecution timeMemory
848642mariam197은행 (IZhO14_bank)C++17
0 / 100
1041 ms19704 KiB
#include<bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; template<typename T> #define ll long long #define ld long double #define mod 1000000007 #define all(x) x.begin(),x.end() using ordered_set = tree<T, null_type,less<T>, rb_tree_tag,tree_order_statistics_node_update>; vector<int> v[1005]; int n; int a[20]; bool solve(int i,int mask){ if(i==n){ return 1; } bool res=1,b=0; for(auto j: v[a[i]]){ int mx=max(mask,j); int y=(1<<(int)log(mx)+1)-1; if((mask^j)==y || mask==0){ b=1; res&=solve(i+1,j); } } return (res&b); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); freopen("bank.in","r",stdin); freopen("bank.out","w",stdout); int m; cin>>n>>m; vector<int> b(m); for(int i=0;i<n;i++){ cin>>a[i]; } for(int i=0;i<m;i++){ cin>>b[i]; } reverse(all(b)); for(int mask=1;mask<(1<<m);mask++){ ll sum=0; for(int i=0;i<m;i++){ if((mask&(1<<i))){ sum+=b[i]; } } if(sum<=1000){ v[sum].push_back(mask); } } cout<<(solve(0,0)==1?"YES":"NO"); return 0; }

Compilation message (stderr)

bank.cpp: In function 'bool solve(int, int)':
bank.cpp:22:31: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
   22 |         int y=(1<<(int)log(mx)+1)-1;
      |                   ~~~~~~~~~~~~^~
bank.cpp: In function 'int main()':
bank.cpp:35:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   35 |     freopen("bank.in","r",stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
bank.cpp:36:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   36 |     freopen("bank.out","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...