• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Testowanie na OI, OIJ

+1 głos
457 wizyt
pytanie zadane 2 grudnia 2022 w C i C++ przez pasjonat_algorytmiki Pasjonat (19,560 p.)

Cześć,

Czy taki kod napisany do testowania w bashu na 2 etapy OI, OIJ jest dobrze napisany? Czy da się to jakoś łatwiej / w c++ ? 

#!/bin/bash

g++ -O3 -static wzor.cpp -std=c++17 -o wzor
g++ -O3 -static brut.cpp -std=c++17 -o brut

N=100

for ((i=1; i>0; i++))
do
	n=$((1 + $RANDOM % $N))
	m=$((1 + $RANDOM % $n))
	k=$((1 + $RANDOM % $N))
	echo $n $m $k > poc$i.in

	l=""
	for ((j=0; j<$n; j++))
	do
		l+="$((1 + $RANDOM % $k)) "
	done
	echo $l >> poc$i.in

        l=""
        for ((j=0; j<$m; j++))
        do
                l+="$((1 + $RANDOM % $k)) "
        done
        echo $l >> poc$i.in

	./brut < poc$i.in > brut$i.out
	./wzor < poc$i.in > wzor$i.out

	if diff -b brut$i.out wzor$i.out > /dev/null
	then
		rm poc$i.in
		rm wzor$i.out
		rm brut$i.out
		echo $i OK
	else
		echo %i NOK
		break
	fi 

done

Jeśli da się jakoś łatwiej w c++ to super, jak nie to można to lepiej napisać? Żeby szybko mozna było podczas zawodów pisać.

To jest testerka do zadania Pociąg Towarowy z tegorocznego 1 etapu OI, gdzie trzeba było wygenerować liczbę n oraz m i potem n liczb oraz m liczb.

Z góry dziękuję za czas i pomoc!

1 odpowiedź

+3 głosów
odpowiedź 2 grudnia 2022 przez Whistleroosh Maniak (57,400 p.)

Pisanie generatorki testów w bashu dla zadań o bardziej skomplikowanym wejsciu to bedzie koszmar. Ja zawsze pisałem je w c++. Jak masz już generatorke to w bashu wystarczy w pętli robić:

./generatorka > input.in 
./brut < input.in > brut.out 
./wzor < input.in > wzor.out

i porównać .out

Ewentualnie możesz w pythonie, bo pewnie szybciej będzie dało się napisać w nim taką generatorke niż w c++.

Podobne pytania

0 głosów
1 odpowiedź 548 wizyt
pytanie zadane 29 sierpnia 2025 w C i C++ przez polandonion Dyskutant (7,710 p.)
0 głosów
1 odpowiedź 485 wizyt
0 głosów
1 odpowiedź 343 wizyt
pytanie zadane 16 czerwca 2023 w Algorytmy przez nerfiko Nowicjusz (170 p.)

93,733 zapytań

142,669 odpowiedzi

323,287 komentarzy

63,293 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...