После отправки всех заданий создается словарь, который отображает номер студента в хэш их файла.
Этот словарь, или hashmap, или отображение (как бы это ни называл ваш язык) будет выглядеть следующим образом:
{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?