import java.util.*;
//https://docs.google.com/document/d/1A-D63VjskOCGUV_mZmQg1lLX2zDf7Z04y5Nu7SJM5WA/edit?tab=t.0
public class Main {
public static void main
(String[] args
) { Scanner scanner
= new Scanner
(System.
in);
// Read input values
// System.out.println("Enter the size of the array (N):");
int N = scanner.nextInt();
int[] nums = new int[N];
// System.out.println("Enter the elements of the array:");
for (int i = 0; i < N; i++) {
nums[i] = scanner.nextInt();
}
// System.out.println("Enter the value of d:");
int d = scanner.nextInt();
// System.out.println("Enter the value of z:");
int z = scanner.nextInt();
// System.out.println("Enter the value of m:");
int m = scanner.nextInt();
// System.out.println("Enter the value of n:");
int n = scanner.nextInt();
// Calculate the number of valid subarrays
int result = countValidSubarrays(nums, d, z, m, n);
System.
out.
println("Number of valid subarrays: " + result
); }
public static int countValidSubarrays(int[] nums, int d, int z, int m, int n) {
int N = nums.length;
int c1 = 0, c2=0 ;
int subArray = 0;
Map
<Integer, Integer
> map
= new HashMap
<>(); map.put(0,1);
for (int i = 0; i < N; i++) {
if(nums[i]==d) c1++;
if(nums[i]==z) c2++;
if(c1==0 && c2==0) continue;
int key = (m * c2) - (n * c1);
if(map.containsKey(key)){
subArray+=map.get(key);
}
map.put(key, map.getOrDefault(key, 0) + 1);
}
return subArray;
}
}
aW1wb3J0IGphdmEudXRpbC4qOwovL2h0dHBzOi8vZG9jcy5nb29nbGUuY29tL2RvY3VtZW50L2QvMUEtRDYzVmpza09DR1VWX21abVFnMWxMWDJ6RGY3WjA0eTVOdTdTSk01V0EvZWRpdD90YWI9dC4wCnB1YmxpYyBjbGFzcyBNYWluIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBTY2FubmVyIHNjYW5uZXIgPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwoKICAgICAgICAvLyBSZWFkIGlucHV0IHZhbHVlcwogICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigiRW50ZXIgdGhlIHNpemUgb2YgdGhlIGFycmF5IChOKToiKTsKICAgICAgICBpbnQgTiA9IHNjYW5uZXIubmV4dEludCgpOwoKICAgICAgICBpbnRbXSBudW1zID0gbmV3IGludFtOXTsKICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oIkVudGVyIHRoZSBlbGVtZW50cyBvZiB0aGUgYXJyYXk6Iik7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspIHsKICAgICAgICAgICAgbnVtc1tpXSA9IHNjYW5uZXIubmV4dEludCgpOwogICAgICAgIH0KCiAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJFbnRlciB0aGUgdmFsdWUgb2YgZDoiKTsKICAgICAgICBpbnQgZCA9IHNjYW5uZXIubmV4dEludCgpOwoKICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oIkVudGVyIHRoZSB2YWx1ZSBvZiB6OiIpOwogICAgICAgIGludCB6ID0gc2Nhbm5lci5uZXh0SW50KCk7CgogICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigiRW50ZXIgdGhlIHZhbHVlIG9mIG06Iik7CiAgICAgICAgaW50IG0gPSBzY2FubmVyLm5leHRJbnQoKTsKCiAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJFbnRlciB0aGUgdmFsdWUgb2YgbjoiKTsKICAgICAgICBpbnQgbiA9IHNjYW5uZXIubmV4dEludCgpOwoKICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG51bWJlciBvZiB2YWxpZCBzdWJhcnJheXMKICAgICAgICBpbnQgcmVzdWx0ID0gY291bnRWYWxpZFN1YmFycmF5cyhudW1zLCBkLCB6LCBtLCBuKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk51bWJlciBvZiB2YWxpZCBzdWJhcnJheXM6ICIgKyByZXN1bHQpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvdW50VmFsaWRTdWJhcnJheXMoaW50W10gbnVtcywgaW50IGQsIGludCB6LCBpbnQgbSwgaW50IG4pIHsKICAgICAgICBpbnQgTiA9IG51bXMubGVuZ3RoOwogICAgICAgaW50IGMxID0gMCwgYzI9MCA7CiAgICAgICBpbnQgc3ViQXJyYXkgPSAwOwogICAgICAgTWFwPEludGVnZXIsIEludGVnZXI+IG1hcCA9IG5ldyBIYXNoTWFwPD4oKTsKICAgICAgIG1hcC5wdXQoMCwxKTsKCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspIHsKICAgICAgICAgICAgaWYobnVtc1tpXT09ZCkgYzErKzsKICAgICAgICAgICAgaWYobnVtc1tpXT09eikgYzIrKzsKICAgICAgICAgICAgaWYoYzE9PTAgJiYgYzI9PTApIGNvbnRpbnVlOwogICAgICAgICAgICBpbnQga2V5ID0gKG0gKiBjMikgLSAobiAqIGMxKTsKICAgICAgICAgICAgaWYobWFwLmNvbnRhaW5zS2V5KGtleSkpewogICAgICAgICAgICAJc3ViQXJyYXkrPW1hcC5nZXQoa2V5KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBtYXAucHV0KGtleSwgbWFwLmdldE9yRGVmYXVsdChrZXksIDApICsgMSk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc3ViQXJyYXk7CiAgICB9Cn0K