#include <stdio.h>
#define N 100050
int n, m, i, j, k, a[15], b[N], v[N];
void dfs(int k){
    if(k > m) return;
    if(v[k] || b[k]) return;
    v[k] = 1;//能走且未走过才走
    for(int i=1; i<=n; i++){
        dfs(k+a[i]);
    }
}//FloodFill把能到的地方标记一下
int main(){
    scanf("%d", &n);
    for(i=1; i<=n; i++){
        scanf("%d", &a[i]);
    }
    scanf("%d", &m);
    while(m--){
        scanf("%d", &k);
        b[k] = 1;
    }
    scanf("%d", &m);
    dfs(0);
    printf("%s\n", v[m]?"Yes":"No");
    return 0;
}

作者 crxis

发表回复