Hello Codeforces community!
I have a question regarding question B in the recent CodeTon round.
My solution passed all pretests, but TLE on test 22 in the main tests. My code is below. ~~~~~ void run_case(){ int n, k; cin >> n >> k; vector v(n); for(auto &it : v) cin >> it;
unordered_set<ll> seen; for(int i = 0; i < n; i++){ if(seen.count(v[i] + k) || seen.count(v[i] - k)){ cout << "YES\n"; return; } seen.insert(v[i]); } cout << "NO\n";
} ~~~~~
I used an unordered_set
to keep tracking of the seen elements. However, when I changed it to set
, the solution passed main tests too. I have always thought that unordered_set
are faster than set
. Can someone please explain to me what's happening here?
Thanks for any help!