ggipetro47.PAS

{* Задача 47 *}

Unit GGIPETRO47;
Interface
Implementation
Begin
 writeln('Петя любит играть со своими кубиками, которые выкладывает в ряд и затем с интересом разглядывает свое творение. Однако недавно друзья решили подшутить над Петей и поставили в его игровой комнате зеркало. Ведь всем известно, что привидения не отражаются в зеркале, а кубики отражаются!
Теперь Петя видит перед собой N цветных кубиков, но не знает, какие из них настоящие, а какие - всего лишь отражение в зеркале.
Помогите Пете! Выясните, сколько кубиков может быть у него. Петя видит отражение всех кубиков в зеркале и часть кубиков, которая находится перед ним. Часть кубиков может быть и позади Пети, но их он не видит.
'
);
End.

Program ggipetro47;

Uses ggipetro47.pas; {* Эту строку можно удалить *}
Uses crt; {* Подключаем внешние файлы *}
label l1;
Var {* Объявление переменных *}
  a      : Array[1..50] Of integer;
  b      : Array[1..50] Of integer;
  i      : byte;
  j      : byte;
  kub    : byte;
  cvt    : byte;
  nowkub : byte;
  kol    : byte;
  raz    : byte;
  ok     : boolean;
Begin
  clrscr; {* Очистка экрана *}
  textcolor(yellow); {*  текст *}
  write('Kolichestvo kubikov: ');
  readln(kub);
  write('Kolichestvo cvetov: ');
  readln(cvt);
  clrscr; {* Очищаем экран *}
  For i := 1 To kub Do {ruchnoe zapolnenie}
  Begin
    l1 : write('Cvet ', i, '-go kubika (1-', cvt, '): ');
    readln(a[i]);
    clrscr; {* Очистка экрана *}
    If (a[i]cvt) Then
    Begin
      writeln('Nevernii cvet!');
      Goto l1;
    End;
    
  End;
  write('> ');
  textcolor(white); {*  текст *}
  For i := 1 To kub Do {* Переменная i увеличивается с 1 до kub *}
    write(a[i], ' '); {raspechatka}
  nowkub := round(kub / 2) + 1;
  For i := 1 To nowkub Do {perebor vozmognih znachenii}
  Begin
    ok := false;
    raz := i - 1;
    For j := 1 To raz Do {proverka}
      If a[i + j - 1]a[i - j] Then
      Begin
        ok := true;
      End;
    If oktrue Then {zapisivanie dopolnitelnih dannih}
    Begin
      inc(kol); {* kol++ *}
      b[kol] := kub - raz;
    End;
    
  End;
  writeln; {* Пустая строка *}
  For i := 1 To kol Do {vivod itoga}
  Begin
    writeln; {* Пустая строка *}
    textcolor(yellow); {* Выбрать  цвет текста *}
    write('> ');
    For j := 1 To kub Do {* Цикл для j => [1 .. kub] *}
    Begin
      If kub - b[i] = j - 1 Then
      Begin
        textcolor(yellow); {* Установить  цвет текста *}
        write('| ');
      End;
      textcolor(white); {* Установить  цвет текста *}
      write(a[j], ' ');
    End;
    write('..Kubikov: ', b[i], '..');
  End;
  readkey; {* Ждем нажатия любой клавиши *}
End.