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

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

Can some one help me with this code? I do not know why it is giving me weird values. Code

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

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

INT_MAX + 1 = INT_MIN, you can imagine it as a cycle. So when your program check for the 5th edge, i.e "5 3 20", both dist[5] and dist[3] are equal to INT_MAX, so INT_MAX + edge.weight will return to negative value.

You can fix it easily. Instead of assigning every element equal to INT_MAX, you should assign them equal to a big enough number, for example 10^9 + 7 is good.