This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
/*
* imaN
* 49
*
**/
#include <bits/stdc++.h>
using namespace std;
//#define ll long long
#define FF first
#define SS second
#define pb push_back
#define bp pop_back()
#define int long long
#define ld long double
#define pf push_front
#define Imansoska ios_base::sync_with_stdio(0);cin.tie(0); cout.tie(0);
#define endl cout << "\n"
#define all(x) x.begin(),x.end()
#define lb lower_bound
/*int binpow (int a, int n, int m) {
if (n == 0)
return 1%m;
if (n % 2 == 1)
return binpow (a, n-1,m) * a%m;
else {
int b = binpow (a, n/2,m);
return b * b%m;
}
}
int lcm(int a, int b) {
return (a / __gcd(a, b)) * b;
}*/
const int N = (1e5+13);
const int maxn= 1e6+100;
const int MOD = 1e9 + 7;
const int INF = 1e18 + 7;
int a[30],b[30],dp[N];
signed main (/*Imansoska*/) {
// Imansoska// freopen("lepus.in","r",stdin);
// freopen("lepus.out","w",stdout);
int n,m;
cin >> n >> m;
for ( int i=1; i<=n; i++ ) {
cin >> a[i];
}
for ( int i=1; i<=m; i++ ) {
cin >> b[i];
}
dp[0]=1;
for ( int i=0; i<=a[1]; i++ ) {
for ( int j=1; j<=m; j++ ) {
dp[i+b[j]]+=dp[i];
}
}
if ( dp[a[1]] && n==1 ) {
cout << "YES";
endl;
}
else {
cout << "NO";
endl;
}
}
# | 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... |