Submission #777721

#TimeUsernameProblemLanguageResultExecution timeMemory
777721Sandarach151Bank (IZhO14_bank)C++17
0 / 100
55 ms7404 KiB
#include<bits/stdc++.h> using namespace std; vector<int> states[20]; bool visited[20][1<<20]; int backtrack(int person, int curstate, int n){ if(person==n){ return true; } if(visited[person][curstate]){ return false; } visited[person][curstate] = true; bool res = false; for(int i=0; i<states[person].size(); i++){ if((states[person][i] & curstate)==0){ res = res | backtrack(person+1, (states[person][i] | curstate), n); if(res==true){ break; } } } return res; } int main(){ int n, m; cin >> n >> m; int people[n]; int notes[m]; for(int i=0; i<n; i++){ cin >> people[i]; } for(int i=0; i<m; i++){ cin >> notes[i]; } for(int i=0; i<n; i++){ for(int curstate = 0; curstate < (1<<20); curstate++){ visited[i][curstate]=false; int sum = 0; for(int j=0; j<20; j++){ if((curstate & (1<<j))!=0){ sum+=notes[i]; if(sum>people[i]){ break; } } } if(sum==people[i]){ states[i].push_back(curstate); } } } backtrack(0, 0, n) ? cout << "YES\n" : cout << "NO\n"; }

Compilation message (stderr)

bank.cpp: In function 'int backtrack(int, int, int)':
bank.cpp:16:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   16 |     for(int i=0; i<states[person].size(); 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...