最后更新于
import java.util.Scanner;
public class 乌龟棋1541 {
public static void main(String[] args){
int n,m;
int[] num = new int[400];
int[] count = {0,0,0,0,0};
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
m = sc.nextInt();
for(int i = 1;i<=n;i++) num[i] = sc.nextInt();
for(int i = 1;i<=m;i++) count[sc.nextInt()]++;
int[][][][] s= new int[41][41][41][41];
s[0][0][0][0] = num[1];
for(int i = 0;i<=count[1];i++){
for(int j = 0;j<=count[2];j++){
for(int k = 0;k<=count[3];k++){
for(int l = 0;l<=count[4];l++){
int r = 1+i+j*2+k*3+l*4;
if(i!=0) s[i][j][k][l] = Math.max(s[i][j][k][l],s[i-1][j][k][l]+num[r]);
if(j!=0) s[i][j][k][l] = Math.max(s[i][j][k][l],s[i][j-1][k][l]+num[r]);
if(k!=0) s[i][j][k][l] = Math.max(s[i][j][k][l],s[i][j][k-1][l]+num[r]);
if(l!=0) s[i][j][k][l] = Math.max(s[i][j][k][l],s[i][j][k][l-1]+num[r]);
}
}
}
}
System.out.println(s[count[1]][count[2]][count[3]][count[4]]);
}
}