This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#define el '\n'
using namespace std ;
mt19937 rd(chrono::steady_clock::now().time_since_epoch().count());
int32_t main (){
ios_base::sync_with_stdio(0);
cin.tie(0);
int n , m;
cin >> n >> m;
vector<int> a(n + 5) , b(m + 5);
for ( int i = 1 ; i <= n ; i++ ) cin >> a[i];
for ( int i = 1 ; i <= m ; i++ ) cin >> b[i];
int sum = accumulate(b.begin() + 1 , b.begin() + m + 1 , 0);
vector<vector<bool>> dp(m + 5 , vector<bool> (sum + 5 , false));
dp[0][0] = 1;
for ( int i = 1 ; i <= m ; i++ ){
for ( int j = 1 ; j <= sum ; j++ ){
dp[i][j] = dp[i - 1][j];
if (j >= b[i]){
dp[i][j] = dp[i][j] | dp[i - 1][j - b[i]];
}
}
}
bool check = true;
for ( int i = 1 ; i <= n ; i++ ) check &= dp[m][a[i]];
cout << (check ? "YES" : "NO");
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |