Submission #1326670

#TimeUsernameProblemLanguageResultExecution timeMemory
1326670yus1f_mBank (IZhO14_bank)C++20
52 / 100
1095 ms420 KiB
#pragma GCC optimize("O3") #include <bits/stdc++.h> #define ll long long #define str string #define pb push_back #define pf push_front #define in insert #define all(v) v.begin(),v.end() const int sz=1000000,INF=1000000000; using namespace std; ll n,m,num1,num2; vector<ll>nums1,nums2; vector<bool>isSeen; bool f(ll num1,ll num2,ll num3) { if(num1==n) { return true; } else if(nums1[num1]==num2) { return f(num1+1,0,0); } else { for(int i=num3;i<m;i++) { if(!isSeen[i] && num2+nums2[i]<=nums1[num1]) { isSeen[i]=true; if(f(num1,num2+nums2[i],num3+1)) { return true; } else { isSeen[i]=false; } } } return false; } } void solve() { cin>>n>>m; isSeen.resize(n+1); for(int i=0;i<n;i++) { cin>>num1; nums1.pb(num1); } for(int i=0;i<m;i++) { cin>>num2; nums2.pb(num2); } if(f(0,0,0)) { cout<<"YES"; } else { cout<<"NO"; } } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr),cout.tie(nullptr); ll t=1; //cin>>t; while(t--) { solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...