Після подання всіх завдань створюється словник, який відображає номер студента до хеша їхнього файлу.
Цей словник, або хешмап, або відображення (незалежно від вашої мови називається) виглядатиме так:
{100: "aabb", 104: "43a", 52: "00ab", 430: "aabb", 332: "43a"}
Ключ - номер учня, а значення - хеш.
Наше завдання - підібрати шахраїв! Шахраї - це ті, у кого однакові хеші.
З огляду на введення {100: "aabb", 104: "43a", 52: "00ab", 430: "aabb", 332: "43a"}, функція повинна повернути (або надрукувати) наступний текст:
100 has identical files to 430
104 has identical files to 332
Зверніть увагу, як файли, де хеші унікальні, не згадуються.
Також тут важливим є порядок :
{100: "aabb", 202: "aabb", 303: "ab", 404: "aabb"} повинен повернути (надрукувати) наступний текст:
100 has identical files to 202,404
Це неправильно для друку будь-якого з наступних умов :
202 has identical files to 100,404
100 has identical files to 404, 202
Ви повинні надрукувати його з точки зору того, як він відображається в словнику. У деяких мовах проходження словника є випадковим, тому в цьому спеціальному випадку вам дозволяється змінити спосіб введення таким чином, щоб ви могли пройти його впорядковано.
Більше прикладів:
{} # prints nothing
{100: "ab", 303: "cd"} # prints nothing again
{100: "ab", 303: "cd", 404: "ab"}
100 has identical files to 404
{303: "abc", 304: "dd", 305: "abc", 405: "dd", 606: "abc"}
303 has identical files to 305,606
304 has identical files to 405
Найкоротший код виграє!
303 has identical files to [305, 606]замість 303 has identical files to 305,606?