кто мне объяснит почему этот код получает AC на acm.timus.ru?
баг? я сначала парился с другой задачей, и мой ассерт не срабатывал,
поставил другое условие - отрицание предыдущего - всё равно не срабатывает.
поставил ASS(0); перед считыванием данных - всё равно нету ожидаемого ТЛ.
вот решение 1000 на тимусе, почему оно заходит?
http://www.everfall.com/paste/id.php?wvxb294mu9qt
Однако, ассерт не должен по той же причине не работать. Код другой задачи в студию?
не понял, вы считаете что тут я не прав, я не компилер ?
зачем же я буду извращаться под кривой компилятор и изобретать непонятно что.
Есть предположение, что влияют уровни оптимизации.
для gcc есть флаги -О. http://gentoo.theserverside.ru/book/ar43s03.html.
Возможно для VC++ есть нечто подобное.
Ну а вообще, если сравнить популярность Java и С++ в олимпиадном движении, то первый язык проигрывает со значительным отставанием... так что тут ты тоже не прав)
Если вы набажили - ну так бывает, но вобщем RE или WA - все равно задача не прошла. Все равно нужно искать ошибку.
Дествительно, в С++ очень много таких нюансов. Самый простой пример: если объявить подряд 2 массива одинакового типа (назовем их "ar" и "br") и обращаесь к элементу br[-1] мы обратимся к последнему элементу ar. Это у нас не вызовет RE, но может накидать мусор в другие переменные вызывая WA. С использованием же векторов у нас будет гарантировано RE.
PS На расположение массивов в памяти, если мне мозг не изменяет, то влияет размерность массива. Компилятор делает адрес начала кратным 16.