Submission #536403

#TimeUsernameProblemLanguageResultExecution timeMemory
536403blueBank (IZhO14_bank)C++17
100 / 100
126 ms8540 KiB
#include <iostream> #include <vector> using namespace std; using vi = vector<int>; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int N, M; cin >> N >> M; vi A(1+N, 0); for(int i = 1; i <= N; i++) { cin >> A[i]; A[i] += A[i-1]; } vi b(M, 0); for(int j = 0; j < M; j++) cin >> b[j]; vi s((1<<M), 0); for(int j = 0; j < M; j++) for(int m = 0; m < (1<<M); m++) if(m & (1 << j)) s[m] += b[j]; vi dp((1<<M), 0); dp[0] = 1; for(int m = 0; m < (1<<M); m++) { if(!dp[m]) continue; int i = 0; while(i+1 <= N && A[i+1] <= s[m]) i++; if(i == N) { cout << "YES\n"; return 0; } for(int z = 0; z < M; z++) { if(m & (1<<z)) continue; if(s[m] + b[z] <= A[i+1]) dp[m | (1 << z)] = 1; } } cout << "NO\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...