import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Muban {
public static Map<Integer, Integer> planksMap = new HashMap<>();
public static int num_4;
public static int num_2;
public static void main(String[] args)
{
int n;
Scanner inScanner = new Scanner(System.in);
n = inScanner.nextInt();
int input;
num_2 = 0;
num_4 = 0;
for (int i = 0; i < n; i++)
{
input = inScanner.nextInt();
extracted(input);
}
int operation_number = inScanner.nextInt();
for (int i = 0; i < operation_number; i++)
{
String judge_opsitive = inScanner.next();
input = inScanner.nextInt();
if (judge_opsitive.equals("+"))
{
extracted(input);
}
else
{
int pre_length = planksMap.get(input);
planksMap.put(input, pre_length - 1);
if (pre_length % 4 == 0)
{
num_2++;
num_4--;
}
else if (pre_length % 4 == 2)
num_2--;
}
if (num_4 >= 2)
System.out.println("Yes");
else if (num_4 == 1 && num_2 >= 2)
System.out.println("Yes");
else {
System.out.println("No");
}
}
inScanner.close();
}
public static void extracted(int input) {
if (planksMap.containsKey(input))
{
int pre_length = planksMap.get(input);
planksMap.put(input, pre_length + 1);
if (pre_length % 4 == 1)
{
num_2++;
}
else if (pre_length % 4 == 3)
{
num_2--;
num_4++;
}
}
else {
planksMap.put(input, 1);
}
}
}
本来想暴力求解,但是。。。思路是用一个集合存储每个长度出现的次数。再用两个变量存储有几对可以组成正方形的木棍,有几对可以组成长方形的。这里简单的推导一下即可。