Submission #166608

#TimeUsernameProblemLanguageResultExecution timeMemory
166608TricksterBank (IZhO14_bank)C++14
19 / 100
2 ms376 KiB
//Suleyman Atayew #include <algorithm> #include <iostream> #include <string.h> #include <stdio.h> #include <vector> #include <queue> #include <cmath> #include <map> #include <set> #define N 100010 #define ff first #define ss second #define pb push_back #define ll long long #define inf 1000000007 #define pii pair <int, int> using namespace std; int sum; int n, m; int v[N]; int f[N]; int dp[N]; int arr[N]; int main() { cin >> n >> m; for(int i = 1; i <= n; i++) cin >> v[i], sum += v[i]; for(int i = 1; i <= m; i++) cin >> arr[i]; int now = 1; for(int i = 1; i <= n; i++) { int x = v[i]; while(x--) f[now++] = v[i]; } dp[0] = 1; for(int i = 1; i <= m; i++) for(int h = sum; h >= 0; h--) if(h + arr[i] <= sum && dp[h] == 1) if(f[h] == f[h+arr[i]] || (f[h] != f[h+1] && f[h+arr[i]] == f[h+1])) dp[h+arr[i]] = 1; if(dp[sum] == 1) cout << "YES"; else cout << "NO"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...