Странная ситуация(три разных вердикта с трех разных компиляторов)

Revision ru4, by thematdev, 2021-07-22 23:41:54

Я заслал решение с трех разных компиляторов и получил три разных вердикта(OK, WA 1, ML 1) по задаче 1553E - Сдвиг перестановки с последнего раунда

123344376

123363613

123363479

Потом я запустил valgrind (g++ 11.1.0) и обнаружил странные "still reachable" адреса памяти, связанные с ios_base::sync_with_stdio. Потом я обнаружил, что он был в функции solve, которую я вызываю для каждого набора входных данных, а не в main, после чего я перенес его в main и получил OK на всех компиляторах.

valgrind output on sample

Достаточно странная , и самое главное, интересная ситуация, поэтому я прошу знающих людей подсказать в чём была проблема в комментариях. Также буду рад любой критике кода, особенно той, которая помогла бы в дальнейшем не выстреливать себе в ногу подобным образом.

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en4 English thematdev 2021-07-22 23:42:15 0 (published)
ru4 Russian thematdev 2021-07-22 23:41:54 0 (опубликовано)
ru3 Russian thematdev 2021-07-22 23:41:32 129
en3 English thematdev 2021-07-22 23:40:01 86 Tiny change: 'he problem, write abo' -> 'he problem to write abo'
en2 English thematdev 2021-07-22 23:30:10 55
en1 English thematdev 2021-07-22 23:28:27 6876 Initial revision for English translation (saved to drafts)
ru2 Russian thematdev 2021-07-22 23:21:36 127
ru1 Russian thematdev 2021-07-22 23:19:58 6769 Первая редакция (сохранено в черновиках)