Всем доброго времени суток! Я недавно начал изучать Java. Хочу затем использовать её на контестах, а для начала нужно набить руку:) Так вот начал я с тренировки http://codeforces.me/gym/100230 (задача B). Написал Дейкстру с кучей, ввод через BufferedReader, но все равно я получил ТЛЕ на 11-ом тесте((( Вот код: http://pastebin.com/R6zGCpPm Помогите чайнику в джаве) Заранее спасибо!
Ошибки:
1) Строки 125-130:
Во втором случае должно быть видимо
p = v * 2 + 1
.2) Необходимо везде использовать
long
, потому что ответ может быть порядка 7·109. А сейчас в heap'e используется int.3) При отсутствии ответа ничего не выводится.
спасибо БОЛЬШОЕ! зашло)
Ну и раз уж вы пишете на новом языке, хорошей идеей было бы разобраться, что есть в стандартной библиотеке. Например, можно использовать PriorityQueue или TreeSet для реализации дейкстры.
Про TreeSet: писать с ним Дейкстру категорически не рекомендую. Работает слишком медленно.