Uses Graph,Crt;
Type
  PolyPoints = record
  x,y  : Integer;
  End;
  UserRec = array[1..4] of PointType;
Var
  mas : UserRec;
  k,j,l,o,d,r : integer;
Procedure RecTreug(Koor : UserRec;color : word);FAR;
Const
    n=4;
 Var
  i : integer;
  Begin
    SetFillStyle(10,10);                   { \   Прорисо}
    SetColor(color);                       {  |  вка пер}
                                           {  |  вого   }
    DrawPoly(n,koor);                      {  |         }
    FloodFill(koor[1].x,koor[1].y+10,10);  { /  тругольника}

    SetColor(13);
    Circle(koor[2].x,koor[2].y,abs((k-l))div 20);
    SetFillStyle(1,13);                          { Рисование Левого кружка}
    FloodFill(koor[2].x-1,koor[2].y,13);

    SetColor(12);
    Circle(Koor[3].x,Koor[3].y,(abs(k-l))div 20);
    SetFillStyle(1,12);                          { Рисование Правого кружка}
    FloodFill(koor[3].x-1,koor[3].y,12);

    For i:=1 to 2 do
    Begin
    SetColor(10);
    SetFillStyle(10,10);

    koor[1].y:=koor[2].y;
    koor[2].y:=koor[2].y+mas[2].y-j;        {Вычисление вершин следуюшего }
    koor[3].y:=koor[2].y;                   { треугольника}
    koor[4].y:=koor[1].y;

    DrawPoly(n,koor);                        { Его прорисовка и закрашивание}
    FloodFill(koor[1].x,koor[1].y+10,10);

    SetColor(13);
    Circle(koor[2].x,koor[2].y,abs((k-l))div 20);
    SetFillStyle(1,13);
    FloodFill(koor[2].x-1,koor[2].y,13);
    SetColor(12);                            {Кружки Однако}
    Circle(Koor[3].x,Koor[3].y,(abs(k-l))div 20);
    SetFillStyle(1,12);
    FloodFill(koor[3].x-1,koor[3].y,12);

    End;

    SetColor(6);
    Rectangle(mas[1].x-((l-k)div 8),koor[3].y+1,mas[1].x+((l-k)div 8),koor[3].y+((mas[3].y-mas[1].y)div 5));
    SetFillStyle(11,6);                   { Прорисока нижнего коричневого}
    FloodFill(mas[1].x,koor[3].y+4,6);    { прямоугольника }
  End;

Procedure RectElka(x,y,xx,yy : Integer);
  Begin
    mas[1].x:=((x+xx)div 2);
    mas[4].x:=mas[1].x;
    mas[2].x:=x;mas[3].x:=xx;                 { Вычисления вершин тр-ка видимо}
    mas[1].y:=y;mas[2].y:=((yy+y)div 4);mas[3].y:=mas[2].y;
    mas[4].y:=mas[1].y;
    RecTreug(mas,10);

  End;
Begin
  Readln(k,j,l,o);
  r:=2;
  d:=detect;
  InitGraph(d,r,'');
  If GraphReSult=GrOK then rectelka(k,j,l,o);
  Readkey;
  CloseGraph;
End.