Tak - przynajmniej starać się rezygnować.
Nie - makra, a szczególnie przedstawione w książce Algorytmika praktyczna … miały zwiększyć szybkość i wygodę kodowania, a nie szybkość samego wynikowego programu jako takiego. Oczywiście ktoś może twierdzić, że wstawienie kodu do programu [rozwijanie makr] daje szybszy kod, niż kod z wywołaniami funkcji - ale przecież są też funkcje inline…
Może nie dokładnie - w końcu, oprócz najprostszego sędziego [programu] są także czasami specjalne programy pisane przez autora zadania.
Ogólnie twój program “potraktowany” zostaje testem - przekierowanie pliku i produkuje odpowiedzi - też przekierowane zostaje do pliku. Potem już tylko porównanie pliku przygotowanego przez autora z twoim.
Czyli jeżeli testujesz u siebie w cmd - używając klawiatury, to jest to dobry sposób tylko dla prostych zadań. Dla trudniejszych, możesz przygotować plik/i testowe in.txt, oraz wynikowy out.txt [np kopijąc z zadania]
Potem:
C:\....> twój_program.exe < in.txt >twoj_out.txt [ENTER]
Poczytaj, o przekierowaniach.
Teraz pozostaje już tylko porównać [najlepiej programowo]:
c:\...> jakis_diff.exe twoj_out.txt out.txt [ENTER]
Dodatkowo możesz “opakować” [samo] testowanie w automatyczny pomiar czasu, ale wtedy musisz przygotowywać swoje większe testy, bo dla małych nie ma to sensu.
Ja używam linuxa i czasami robię/robiłem podobnie …, teraz częściej korzystam z ideone.