#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;
vector<int> v;
unordered_map<int, int> table;
unordered_map<int, int> count;
unordered_map<int, int> tmp_ans;
unordered_map<int, int> times;
int main(){
int n, a, target, ans = 0;
cin >> n;
while(n--){
cin >> a;
v.push_back(a);
}
cin >> target;
for(int i = 0; i < v.size(); i++){
if(table.find(target - v[i]) == table.end()){
table[v[i]] = i;
count[v[i]]++;
}
else{
table[v[i]] = i;
count[v[i]]++;
if(target - v[i] == v[i]){
times[target - v[i]]++;
}
else
tmp_ans[v[i]] += count[target - v[i]];
}
}
for(auto it : times)
ans += ((it.second + 1) * it.second) / 2;
for(auto it : tmp_ans){
ans += it.second;
}
cout << ans << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KI2luY2x1ZGUgPHZlY3Rvcj4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2ZWN0b3I8aW50PiB2Owp1bm9yZGVyZWRfbWFwPGludCwgaW50PiB0YWJsZTsKdW5vcmRlcmVkX21hcDxpbnQsIGludD4gY291bnQ7CnVub3JkZXJlZF9tYXA8aW50LCBpbnQ+IHRtcF9hbnM7CnVub3JkZXJlZF9tYXA8aW50LCBpbnQ+IHRpbWVzOwoKaW50IG1haW4oKXsKICAgIGludCBuLCBhLCB0YXJnZXQsIGFucyA9IDA7CiAgICBjaW4gPj4gbjsKICAgIHdoaWxlKG4tLSl7CiAgICAgICAgY2luID4+IGE7CiAgICAgICAgdi5wdXNoX2JhY2soYSk7CiAgICB9CiAgICBjaW4gPj4gdGFyZ2V0OwoKICAgIGZvcihpbnQgaSA9IDA7IGkgPCB2LnNpemUoKTsgaSsrKXsKICAgICAgICBpZih0YWJsZS5maW5kKHRhcmdldCAtIHZbaV0pID09IHRhYmxlLmVuZCgpKXsKICAgICAgICAgICAgdGFibGVbdltpXV0gPSBpOwogICAgICAgICAgICBjb3VudFt2W2ldXSsrOwogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICB0YWJsZVt2W2ldXSA9IGk7CiAgICAgICAgICAgIGNvdW50W3ZbaV1dKys7CiAgICAgICAgICAgIGlmKHRhcmdldCAtIHZbaV0gPT0gdltpXSl7CiAgICAgICAgICAgICAgICB0aW1lc1t0YXJnZXQgLSB2W2ldXSsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHRtcF9hbnNbdltpXV0gKz0gY291bnRbdGFyZ2V0IC0gdltpXV07CiAgICAgICAgfQogICAgfQogICAgZm9yKGF1dG8gaXQgOiB0aW1lcykKICAgICAgICBhbnMgKz0gKChpdC5zZWNvbmQgKyAxKSAqIGl0LnNlY29uZCkgLyAyOwogICAgZm9yKGF1dG8gaXQgOiB0bXBfYW5zKXsKICAgICAgICBhbnMgKz0gaXQuc2Vjb25kOwogICAgfQoKICAgIGNvdXQgPDwgYW5zIDw8ICJcbiI7CiAgICByZXR1cm4gMDsKfQoK