Разрешено ли е да добавяме други полета в класовете освен посочените в условието, които да са помощни за функциите на класа?
Да, разрешено е.
Дословно ли трябва да се следва условието, т.е. задължително ли е полето да е масив или може да бъде например обект от наш клас, който реализира динамичен масив?
Не е нужно да е точно масив, може да реализирате ваш клас.