zadach522.PAS

{* Задача 522 *}

Unit ZADACH522;
Interface
Implementation
Begin
 writeln('Письменный экзамен по математике здают n абитуриентов. Каждый преподаватель для проверки получает равное количество работ и проверяет по 3 работы в час. Каждый час работы преподавателя стоит вузу 500 руб. Кроме того за 4 часа экзамена преподаватель получает 2500 руб. Весь обслуживающий персонал корпуса за время экзамена и время проверки получает 2500 руб в час. Сколько преподавателей надо пригласить, чтобы общая сумма денег затраченых вузом на проведение одного экзамена была наименьшей? Какова эта сумма? ');
End.

Program zadach522;

Uses zadach522.pas; {* Эту строку можно удалить *}
Uses Crt; {* Подключаем внешние файлы *}
Var {* Объявление переменных *}
  n  : word;
  i  : word;
  k  : word;
  x  : word;
  y  : word;
  z  : word;
  b  : LongInt;
  c  : LongInt;
  s  : LongInt;
  s1 : LongInt;
  x1 : Real;
Begin
  ClrScr; {* Очищаем экран *}
  Writeln; {* Вывод пустой строки *}
  Write('Введите количество абитуриентов: ');
  Readln(n);
  x1 := n / 3;
  If trunc(x1) = n / 3 Then
    x := trunc(x1)
  Else x := trunc(x1) + 1; {x-количество часов для проверки}
    For i := 1 To x Do {* Цикл для i => [1 .. x] *}
    Begin
      y := trunc(x / i); {y-количество часов для проверки i-мя преподавателями}
      If x / i = y Then
      Begin
        b := i * 2500 + 500 * i * y; {b-кол-во денег для i преподавателей}
        z := 4 + y; {кол-во часов работы персонала обслуживания}
        c := z * 2500; {кол-во денег для персонала обслуживания}
        s1 := b + c{сумма требуемая при приглашении i преподавателей}
      End;
      If i = 1 Then
        s := s1;
      If s < s1 Then
      Begin
        s := s1;
        k := i
      End;
      
    End;
  Writeln('Наименьшая сумма которую можно затратить на один экзамен = ', s);
  Writeln('Количество приглашаемых преподавателей = ', k);
  ReadKey
End.