第三题只过了20%,考虑了禁着点可能大于s,但是以下代码报错 段错误,请帮忙看下哪里出问题了?
int main() {
int n;
std::cin >> n;
std::vector<int> a(n);
std::unordered_set<int> hash;
for (int i = 0; i < n; ++i) {
int v;
std::cin >> v;
a[i] = v;
hash.emplace(v);
}
int s;
std::cin >> s;
long long res = s - 1;
for (int i = 0; i < n; ++i) {
if (a[i] >= s) continue;
if (hash.count(s - a[i])) --res;
else res -= 2;
}
printf("%lld", res);
}