제출 #1303910

#제출 시각아이디문제언어결과실행 시간메모리
1303910cavanar은행 (IZhO14_bank)C++20
0 / 100
5 ms588 KiB
#include "bits/stdc++.h" #define FOR(i,a,b)for(int i=(a);i<(b);i++) #define F0R(i,a)FOR(i,0,a) #define ROF(i,a,b)for(int i=(b)-1;i>=(a);i--) #define R0F(i,a)ROF(i,0,a) #define REP(a)F0R(_,a) using namespace std; const int mxn=20; int a[mxn],b[mxn],p[mxn+1],sm[1<<mxn]; bool dp[mxn+1][1<<mxn]; int main(){ cin.tie(nullptr)->sync_with_stdio(false); int n,m;cin>>n>>m; F0R(i,n)cin>>a[i]; F0R(i,m)cin>>b[i]; F0R(i,n)p[i+1]=p[i]+a[i]; F0R(i,1<<m)dp[0][i]=true; F0R(i,1<<m)F0R(j,m)if(i&(1<<j))sm[i]+=a[j]; FOR(i,1,n+1)F0R(j,1<<m)if(dp[i-1][j]){ int ss=sm[j]; if(ss==p[i-1]+a[i-1])dp[i][j]=true; F0R(k,m)if(j&(1<<k))dp[i][j]=dp[i][j] or dp[i][j^(1<<k)]; } cout<<(dp[n][(1<<m)-1]?"YES":"NO")<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...