제출 #843848

#제출 시각아이디문제언어결과실행 시간메모리
843848Pa_sha은행 (IZhO14_bank)C++17
0 / 100
4 ms16732 KiB
#include <bits/stdc++.h> #define int long long #define endl '\n' using namespace std; constexpr int mod=1e9+7; void solve() { int n,m; cin>>n>>m; int a[n+2]={0},b[m+1]; for(int i=1;i<=n;i++) { cin>>a[i]; } for(int i=1;i<=m;i++) { cin>>b[i]; } vector<array<int,2>>dp((1ll<<20),{-1,-1}); a[n+1]=1e8; dp[0][0]=1;dp[0][1]=0; for(int s=1;s<(1ll<<m);s++) { for(int i=1;i<=m;i++) { if(!((s>>(i-1))&1)||dp[s][0]>=n) { continue; } int h=(s^(1ll<<(i-1))); if(dp[h][0]==-1) { continue; } int nw=dp[s][1]+dp[h][1]; if(dp[h][0]>dp[s][0]) { dp[s][0]=dp[h][0]+(nw==a[dp[h][0]]); dp[s][1]=nw%a[dp[h][0]]; continue; } if(nw==a[dp[h][0]]) { dp[s][0]++; dp[s][1]=0; } else { dp[s][1]=nw; } } } cout<<(dp[(1ll<<m)-1][0]>=n?"YES":"NO")<<endl; } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int 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...