#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
int main() {
int n, x, y;
cin >> n >> x >> y;
vector<int> b(n + 1);
// Input array
for (int i = 1; i <= n; i++) {
cin >> b[i];
}
unordered_map<int, int> countMap; // To store frequency of counts
countMap[0] = 1; // Initialize with count 0
int c = 0; // Count of valid subarrays
int result = 0; // Total valid subarrays count
// Iterate through the array
for (int i = 1; i <= n; i++) {
// Increment or decrement the count based on the value in the array
if (b[i] == x) {
c++;
} else if (b[i] == y) {
c--;
}
// If this count has been seen before, it means there are some subarrays
// that have equal number of x and y
result += countMap[c];
// Increment the count of this difference
countMap[c]++;
}
cout << result << endl; // Print the result
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewogICAgaW50IG4sIHgsIHk7CiAgICBjaW4gPj4gbiA+PiB4ID4+IHk7CiAgICB2ZWN0b3I8aW50PiBiKG4gKyAxKTsKCiAgICAvLyBJbnB1dCBhcnJheQogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgY2luID4+IGJbaV07CiAgICB9CgogICAgdW5vcmRlcmVkX21hcDxpbnQsIGludD4gY291bnRNYXA7ICAvLyBUbyBzdG9yZSBmcmVxdWVuY3kgb2YgY291bnRzCiAgICBjb3VudE1hcFswXSA9IDE7ICAvLyBJbml0aWFsaXplIHdpdGggY291bnQgMAogICAgaW50IGMgPSAwOyAgLy8gQ291bnQgb2YgdmFsaWQgc3ViYXJyYXlzCiAgICBpbnQgcmVzdWx0ID0gMDsgIC8vIFRvdGFsIHZhbGlkIHN1YmFycmF5cyBjb3VudAoKICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgYXJyYXkKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIC8vIEluY3JlbWVudCBvciBkZWNyZW1lbnQgdGhlIGNvdW50IGJhc2VkIG9uIHRoZSB2YWx1ZSBpbiB0aGUgYXJyYXkKICAgICAgICBpZiAoYltpXSA9PSB4KSB7CiAgICAgICAgICAgIGMrKzsKICAgICAgICB9IGVsc2UgaWYgKGJbaV0gPT0geSkgewogICAgICAgICAgICBjLS07CiAgICAgICAgfQoKICAgICAgICAvLyBJZiB0aGlzIGNvdW50IGhhcyBiZWVuIHNlZW4gYmVmb3JlLCBpdCBtZWFucyB0aGVyZSBhcmUgc29tZSBzdWJhcnJheXMKICAgICAgICAvLyB0aGF0IGhhdmUgZXF1YWwgbnVtYmVyIG9mIHggYW5kIHkKICAgICAgICByZXN1bHQgKz0gY291bnRNYXBbY107CgogICAgICAgIC8vIEluY3JlbWVudCB0aGUgY291bnQgb2YgdGhpcyBkaWZmZXJlbmNlCiAgICAgICAgY291bnRNYXBbY10rKzsKICAgIH0KCiAgICBjb3V0IDw8IHJlc3VsdCA8PCBlbmRsOyAgLy8gUHJpbnQgdGhlIHJlc3VsdAogICAgcmV0dXJuIDA7Cn0K