Блог пользователя AlexandruOlteanu2017

Автор AlexandruOlteanu2017, история, 7 лет назад, По-английски

So.. I have a solution to a problem but it gives me a error.. Can you tell my what is wrong, please? http://mirror.codeforces.com/contest/546/submission/35514636

  • Проголосовать: нравится
  • -3
  • Проголосовать: не нравится

»
7 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Dear AlexandruOlteanu2017,

You code passed test 1 successfully on my computer when compiled using C++17. Nonetheless, you have declared the global array dp as an array of size 2, and accessed dp[2] inside the main() function. This may cause a run-time error, as you should only access dp[0] and dp[1]. It seems that the C++17 compiler was able to detect and fix the array-index problem.

On the other hand, you may check the following C++17 implementation 35517203 for solving the problem.

Hope that this helps.

Best wishes

  • »
    »
    7 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Thank you very much. That was the problem. :)

    • »
      »
      »
      7 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      With pleasure.

    • »
      »
      »
      7 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      The following is an alternative C++17 solution using queue< int > to store the cards that each player holds.

      35519429

      Best wishes,

    • »
      »
      »
      7 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      The following is yet another alternative C++17 solution. Instead of using queue< int > to store the cards that each player holds, the card numbers between 1 and 10 are decremented by one to be between 0 and 9. A long long state member of each player is then used to store the present cards held by the player as the decimal digits of the variable. Adding/removing a card is implemented using a simple decimal number arithmetic.

      To check for the presence of cycles in the test case, the initial state before each fight is stored in an STL set. The fight continues until either the number of cards that one of the players holds is 0 or the new state after the fight is found in the set of previous states.

      35521757

    • »
      »
      »
      7 лет назад, # ^ |
      Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

      The following is another alternative C++17 solution using a nested STL map to store the visited states, and a two-dimensional dp[x][count] array that stores the increment to be added to the present state when card number x is added to player who holds count cards.

      35526236