А, ну значит так оно и есть - работа со ссылками. Там вроде придётся использовать 
new для выделения памяти, 
dispose - для освобождения. Доступ к элементам - тоже через стрелку. Можете ориентироваться на 
вот этот пример:
Код:
   {Динамическое выделение памяти с использованием функций New и
    Dispose.}
    program Sample;
    type
      pntr = ^RecType;
      RecType = array[1..40] of integer;
    var
      p: pntr;
      t: integer;
    begin
      New(p);
      for t: = 1 to 40 do p^[t]: = t*2;
      for t: = 1 to 40 do Write(p^[t], ' ');
      WriteLn;
      Dispose(p);
    end.
А алгоритм поиска минимального элемента уж составите сами. Чётные и нечётные различает вроде функция 
odd.