Submission #10636

#TimeUsernameProblemLanguageResultExecution timeMemory
10636gs14004은행 (IZhO14_bank)C++98
71 / 100
1079 ms828 KiB
#include <cstdio> #include <vector> using namespace std; vector<int> a_bit[20]; int n,m,a[20],b[20]; void trial_bit(int v){ int res = 0; for (int i=0; i<m; i++) { if((v>>i)&1) res += b[i]; } for (int i=0; i<n; i++) { if(a[i] == res) a_bit[i].push_back(v); } } int f(int pos, int v){ if(pos == n) return 1; for (int i=0; i<a_bit[pos].size(); i++) { if((a_bit[pos][i] & ~v) == 0 && f(pos+1,v^a_bit[pos][i])) return 1; } return 0; } int main(){ scanf("%d %d",&n,&m); for (int i=0; i<n; i++) { scanf("%d",&a[i]); } for (int i=0; i<m; i++) { scanf("%d",&b[i]); } for (int i=0; i<(1<<m); i++) { trial_bit(i); } printf(f(0,(1<<m)-1)?"YES":"NO"); }

Compilation message (stderr)

bank.cpp: In function 'int f(int, int)':
bank.cpp:20:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i=0; i<a_bit[pos].size(); i++) {
                   ~^~~~~~~~~~~~~~~~~~
bank.cpp: In function 'int main()':
bank.cpp:27:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d",&n,&m);
     ~~~~~^~~~~~~~~~~~~~~
bank.cpp:29:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",&a[i]);
         ~~~~~^~~~~~~~~~~~
bank.cpp:32:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",&b[i]);
         ~~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...