title: Choosing collisions of hash functions
body: <p>According to the condition of the problem, it is necessary to &quot;break&quot; the standard hash &quot;gcc&quot;. It is necessary for the program to run for more than 1.5 seconds according to the input data. 15000 string with up to 15 characters 0-9A-Za-z_ is appended to unordered_set.
  If I understand correctly, it is necessary to choose such strings, the hash of which will be the same, but it is not clear how</p>
  <pre><code>auto users_list = getUsers( 15'000u );
  auto start_time = std::clock();
  
  for( const auto&amp; user : users_list ) {
      users.insert( user );
  }
  
  auto end_time = std::clock();
  double spent = static_cast&lt;double&gt;( end_time - start_time ) / CLOCKS_PER_SEC;
  </code></pre>
  <p>The code of the program to be &quot;broken&quot; (does not change):
  <a href="https://github.com/NikitaChampion/data-structures/blob/main/contest/hacks/bad-hash-gcc.cpp" rel="nofollow noreferrer">https://github.com/NikitaChampion/data-structures/blob/main/contest/hacks/bad-hash-gcc.cpp</a></p>