UPD2: It is my first time to make a post here, can I know why many people are making downvotes (nearly those didn't write a comment), I think if they told me the reason for that maybe this will be helpful for both of us
Again, someone hacked my B solution coz of the Python Dictionary (this can happen also when using CPP unordered_map)
But I noticed that it can be done using an array because the constraint bi <= k which will allow to avoid Py dict
So, I wonder did the problem setter put this constraint for Python users to be able to solve it also in Python as they can avoid dictionary because of it, or the constraint exists for any other reason?
UPD1: Now, I have used d[str(key)] = value and it works and got ACC not TLE like the previous
Submission: 289783097
brands = defaultdict(int)
for _ in range(k):
bi, ci = read_numbers()
brands[str(bi)] += ci
brands = list(brands.values())
brands.sort(reverse=True)
ans = 0
for i in range(min(n, len(brands))):
ans += brands[i]
print(ans)
the only change is the str(bi) instead of bi, can anyone try to hack it or show me something that will let this not work
coz I really wants to use Python all time (recursion problem has no idea how to solve it yet, but I am speaking now about this problem)
this restriction really helps python users avoid using dictionaries and use arrays, it was introduced mainly in order to ensure the optimality and simplicity of solving the problem in any programming languages
Exactly, I really liked it, but I was very stressed in the contest and wanna solve most of it, so I didn't resubmit and said I hope no one will do this hack
No issues don't worry, next time just watch for the constraints first. They are set in a way so that every user could do it.
I was surprised to see this, where
unordered_map
performs as well as python'sdict()
. Againdefaultdict
performs better thandict()
. I got TLE on B too I was using that.you can use dicts like this:
d[str(key)] = val
, string hash func is much more stableOooh, first time I hear about this, will try it, thanks
It works, and now I have updated the post, thanks so much
Learnt this the hard way from a previous contest, but use a custom hash to avoid getting hacked while using unordered_map in c++
Leaving the code Snippet below, will link the original blog below if and when I find it
Use unordered_map<int, int, custom_hash> or map<int,int, custom_hash>
Original Blog: Here
I was thinking too about creating my own hash function, but I was afraid of some genius one searching and deeply know about the function I used and then also hack me
Auto comment: topic has been updated by Mostafa_Alaa99 (previous revision, new revision, compare).
Auto comment: topic has been updated by Mostafa_Alaa99 (previous revision, new revision, compare).