В състезателната система са поставени две задачи "lilies" и "sequence", които се отнасят към настоящата тема.
Те могат да бъдат решени само с материала, който сме разгледали досега. Не е нужно да се използват масиви,
но разбира се - не е и забранено. За да бъдат решени, тези задачи изискват по-задълбочено логическо осмисляне.
След около два дни ще публикуваме съответни упътвания - сега опитайте сами.
Ето кратки упътвания:
За зад. Lilies всъщност трябва да се намери сумата S на броя на всички луковици
и броя M на тези луковици, които е максимален. Тогава отговорът е S-M+1.
Задачата се свежда до намиране на сума и на максимум на редица от въведени
числа. Понеже не използваме масиви, това трябва да стане едновременно с
четенето на данните.
Зад. Sequence е добър пример за съставяне на ефективен алгоритъм, който е един от
основните, с който да обучаваме малките състезатели. Четейки числата от входа,
трябва да запазваме в променлива текущо прочететно и да имаме в друга променлива
предишно прочетеното (не използваме масив).
Ако текущо прочетеното е равно на предишно прочетеното, увеличаме с единица брояч,
който показва текущата дължина на последователността от равни числа.
Ако текущо прочетеното не е равно на предишно прочетеното, пресмятаме текущата максимална
стойност на брояча, зареждаме брояча с единица и полагаме предишната текуща стойност от редицата
да е равна на текущата.