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!