write a go solution for Description: Let's denote the following function f. This function takes an array a of length n and returns an array. Initially the result is an empty array. For each integer i from 1 to n we add element a_i to the end of the resulting array if it is greater than all previous elements (more formally, if a_i>maxlimits_1<=j<ia_j). Some examples of the function f: 1. if a=[3,1,2,7,7,3,6,7,8] then f(a)=[3,7,8]; 2. if a=[1] then f(a)=[1]; 3. if a=[4,1,1,2,3] then f(a)=[4]; 4. if a=[1,3,1,2,6,8,7,7,4,11,10] then f(a)=[1,3,6,8,11]. You are given two arrays: array a_1,a_2,...,a_n and array b_1,b_2,...,b_m. You can delete some elements of array a (possibly zero). To delete the element a_i, you have to pay p_i coins (the value of p_i can be negative, then you get |p_i| coins, if you delete this element). Calculate the minimum number of coins (possibly negative) you have to spend for fulfilling equality f(a)=b. Input Format: The first line contains one integer n (1<=n<=5*10^5) — the length of array a. The second line contains n integers a_1,a_2,...,a_n (1<=a_i<=n) — the array a. The third line contains n integers p_1,p_2,...,p_n (|p_i|<=10^9) — the array p. The fourth line contains one integer m (1<=m<=n) — the length of array b. The fifth line contains m integers b_1,b_2,...,b_m (1<=b_i<=n,b_i-1<b_i) — the array b. Output Format: If the answer exists, in the first line print YES. In the second line, print the minimum number of coins you have to spend for fulfilling equality f(a)=b. Otherwise in only line print NO. Note: None. Output only the code with no comments, explanation, or additional text.