да си призная не разбрах решението ти, просто символиката не ми говори нищо. ето защо ще опитам да предложа символика с добра четимост, ако не те мързи пробвай да опишеш с нея.
елементи на езика:
1. процедура за решаване на X топчета с Y по-тежки с Z измервания:
solveX,Y,Z(a,b,c,d.....)
........
endX,Y,Z
2. коментар: // текст
3. измерване:
measure(a,b,c,d....?a1,b1,c1,d1......)
case >
//действия при лявата група по- тежка
case =
// действия при еднаквост
case <
// действия при дясната по-тежка
end measure
4. недопустим резултат
error
5.намиране на решение
root(n)=.....
разяснения:
когато се пише solveX,Y,Z(a,b)(n) се разбира ентия корен на процедурата
ето как би изглеждало решаването на 4 топчета с 2 тежки и 3 измервания:
solve4,2,3(1,2,3,4)// задачата
measure(1,2?3,4)
case >
root(1)=1// и двете са отляво
root(2)=2
case =
root(1)=solve2,1,1(1,2)// двете са в двете групи
root(2)=solve2,1,1(3,4)
case <
root(1)=3// и двете са отдясно
root(2)=4
end measure //1,2?3,4
end4,2,3// край на задачата
solve2,1,1(a,b)// намира кое от двете е по тежко с едно измерване
measure(1?2)
case >
root(1)=a// първото
case =// невъзможно - дадено е едно по-тежко
error
case <// второто
root(1)=b
end measure
end2,1,1