제출 #777726

#제출 시각아이디문제언어결과실행 시간메모리
777726Sandarach151은행 (IZhO14_bank)C++17
46 / 100
1082 ms14676 KiB
#include<bits/stdc++.h> using namespace std; vector<int> states[20]; bool visited[20][1<<20]; bool ans[20][1<<20]; int backtrack(int person, int curstate, int n){ if(person==n){ return true; } if(visited[person][curstate]){ return ans[person][curstate]; } 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; } } } ans[person][curstate]=res; 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; } } for(int curstate = 0; curstate < (1<<20); curstate++){ int sum = 0; for(int j=0; j<m; j++){ if((curstate & (1<<j))!=0){ sum+=notes[j]; } } for(int i=0; i<n; i++){ if(sum==people[i]){ states[i].push_back(curstate); } } } backtrack(0, 0, n) ? cout << "YES\n" : cout << "NO\n"; }

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

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