Паскаль, поиск по барьерному элементу

program ex; 
const N=5; 
var a: array[0..N+1] of integer;   
  i,x1, x2:integer; 
  Begin
   writeln('Введите массив из 5 элементов');
   For i:=0 to n-1 do
   read (a[i]);
   Writeln('Напиши значение x1');
   readln(x1);
    Writeln('Напиши значение x2');
    readln(x2);
      
   a[N]:=x1; 
   a[N+1]:=x2; 
   i:=0;
   while (a[i]<>x1) and  (a[i]<>x2) do 
   i:=i+1;                 
   if i=n then writeln('-1')
else writeln('Элемент найден под номером ',  i);
   end.

Добрый вечер! Как реализовать данную программу через барьер, если барьер это 0 или 1?

Непонятно почему тут два значения. Задача-то какая?

Гугл говорит, что

это значит просто записать в конец массива то значение, что ищем, и тогда достаточно одного условия в цикле, без проверки конца массива. Что тут вроде бы и есть.

@AlexP В массиве найти номер первого элемента, являющегося красивым числом. Если такого элемента нет, вывести -1. Реализовать поиск с барьером.
Красивым числом является число:
0 или 1

Тогда наверно не нужен ввод х1 и х2, и это тоже

Достаточно

   a[N] := 0; 
   i := 0;
   while (a[i] <> 0) and (a[i] <> 1) do 
     i := i + 1;                 
   if i = N then writeln('-1')
   else writeln('Элемент найден под номером ',  i);

@AlexP Да, точно, спасибо! Это было логично