Submission #1321673

#TimeUsernameProblemLanguageResultExecution timeMemory
1321673zhaoxwBank (IZhO14_bank)C++20
100 / 100
65 ms4480 KiB
#include<bits/stdc++.h>
using namespace std;
int dp[1<<20],a[21],b[21],p[21],n,m,ok,cnt = 1;
int main()
{
    cin >> n >> m;
    for(int i = 1;i <= n;i++)
    {
        cin >> a[i];
        p[i] = p[i-1]+a[i];
    }
    for(int i = 1;i <= m;i++)
        cin >> b[i];
    for(int mask = 0;mask < (1<<m);mask++)
    {
        int cur = 0,sum = 0;
        for(int j = 0;j < m;j++)
            if(mask&(1<<j))
            {
                cur = max(cur,dp[mask^(1<<j)]);
                sum += b[j+1];
            }
        if(sum == p[cur+1]) cur++;
        dp[mask] = cur;
    }
    for(int mask = 0;mask < (1<<m);mask++)
        if(dp[mask] == n) ok = 1;
    if(ok) cout << "YES\n";
    else 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...