def cacheContents(callLogs):
# Write your code here
cache = []
temp_cache = {}
priority = {}
access = {}
for (time, item) in callLogs:
if item not in access:
access[item] = {}
if time not in access[item]:
access[item][time] = 0
access[item][time] += 1
for item in access.keys():
lastAccess = None
priority[item] = 0
for time in sorted(access[item].keys()):
if lastAccess == None:
lastAccess = time
priority[item] += (2 * access[item][time])
if time != lastAccess:
priority[item] = max(priority[item] - (time - lastAccess - 1), 0)
if priority[item] > 5:
temp_cache[item] = True
elif priority[item] <= 3:
temp_cache[item] = False
lastAccess = time
for item in sorted(temp_cache.keys()):
if temp_cache[item]:
cache.append(item)
if len(cache) == 0:
return [-1]
else:
return cache
ZGVmIGNhY2hlQ29udGVudHMoY2FsbExvZ3MpOgogICAjIFdyaXRlIHlvdXIgY29kZSBoZXJlCiAgIGNhY2hlID0gW10KICAgdGVtcF9jYWNoZSA9IHt9CiAgIHByaW9yaXR5ID0ge30KICAgYWNjZXNzID0ge30KCiAgIGZvciAodGltZSwgaXRlbSkgaW4gY2FsbExvZ3M6CiAgICAgICBpZiBpdGVtIG5vdCBpbiBhY2Nlc3M6CiAgICAgICAgICAgYWNjZXNzW2l0ZW1dID0ge30KICAgICAgIGlmIHRpbWUgbm90IGluIGFjY2Vzc1tpdGVtXToKICAgICAgICAgICBhY2Nlc3NbaXRlbV1bdGltZV0gPSAwCiAgICAgICBhY2Nlc3NbaXRlbV1bdGltZV0gKz0gMQoKICAgZm9yIGl0ZW0gaW4gYWNjZXNzLmtleXMoKToKICAgICAgIGxhc3RBY2Nlc3MgPSBOb25lCiAgICAgICBwcmlvcml0eVtpdGVtXSA9IDAKICAgICAgIGZvciB0aW1lIGluIHNvcnRlZChhY2Nlc3NbaXRlbV0ua2V5cygpKToKICAgICAgICAgICBpZiBsYXN0QWNjZXNzID09IE5vbmU6CiAgICAgICAgICAgICAgIGxhc3RBY2Nlc3MgPSB0aW1lCiAgICAgICAgICAgcHJpb3JpdHlbaXRlbV0gKz0gKDIgKiBhY2Nlc3NbaXRlbV1bdGltZV0pCiAgICAgICAgICAgaWYgdGltZSAhPSBsYXN0QWNjZXNzOgogICAgICAgICAgICAgICBwcmlvcml0eVtpdGVtXSA9IG1heChwcmlvcml0eVtpdGVtXSAtICh0aW1lIC0gbGFzdEFjY2VzcyAtIDEpLCAwKQogICAgICAgICAgICAgICBpZiBwcmlvcml0eVtpdGVtXSA+IDU6CiAgICAgICAgICAgICAgICAgICB0ZW1wX2NhY2hlW2l0ZW1dID0gVHJ1ZQogICAgICAgICAgICAgICBlbGlmIHByaW9yaXR5W2l0ZW1dIDw9IDM6CiAgICAgICAgICAgICAgICAgICB0ZW1wX2NhY2hlW2l0ZW1dID0gRmFsc2UKICAgICAgICAgICBsYXN0QWNjZXNzID0gdGltZQogICAKICAgZm9yIGl0ZW0gaW4gc29ydGVkKHRlbXBfY2FjaGUua2V5cygpKToKICAgICAgIGlmIHRlbXBfY2FjaGVbaXRlbV06CiAgICAgICAgICAgY2FjaGUuYXBwZW5kKGl0ZW0pCiAgIAogICBpZiBsZW4oY2FjaGUpID09IDA6CiAgICAgICByZXR1cm4gWy0xXQogICBlbHNlOgogICAgICAgcmV0dXJuIGNhY2hl