• Pascal abc.
    В некоторой гостинице для имеются K1, K2, K3-местные номера (от 1 до 4 мест

    в номере). На каждом этаже типы номеров чередуются:

    1) первая комната - K1-местный номер;

    2) вторая комната - K2-местный номер;

    3) третья комната - K3-местный номер;

    4) четвертая комната - K1-местный номер;

    5) пятая комната - K2-местный номер;

    6) шестая комната - K3-местный номер и т. д.

    Количество комнат N на этаже гостиницы кратно 3, то есть N равно 6, 9, 12 и т. д. В

    системе управления занятыми местами каждой комнате соответствует элемент массива А,

    в котором записано количество занятых мест. Например

    N = 9, K1 = 2, K2 = 4, K3 = 3.

    Заселение 9 номеров на одном из этажей

    A[1]=2 (свободных мест в двухместном номере нет);

    A[2]=1 (три места в четырехместном номере свободны);

    A[3]=0 (все три места в трехместном номере свободны);

    A[4]=1 (одно место в двухместном номере свободно);

    A[5]=3 (одно место в четырехместном номере свободно);

    A[6]=2 (одно место в трехместном номере свободно);

    A[7]=0 (все места в двухместном номере свободны);

    A[8]=4 (все места в четырехместном номере заняты);

    A[9]=3 (все места в трехместном номере заняты);

    Левое крыло комнаты с номерами 1, 2, 3, 4.

    Правое крыло комнаты с номерами 6, 7, 8, 9.

    Комната с номером 5 посередине.

    Найти номера двух соседних комнат в которых не менее К свободных мест на всем этаже.
    Если таких комнат нет, то вывести 0, если есть, то вывести номера этих комнат.
    Например, если К=6, то номерами

    соседних комнат с общим количеством свободных мест в соседних номерах будут 2 и 3.

Ответы 1

  • var i,j,n,k,k1,k2,k3: integer; bb: boolean;

    a: array of integer;

    begin

    write('N = ');

    readln(n);

    if ((n mod 3 = 0) and (n<>0)) then begin

    write('K1 = ');

    readln(k1);

    write('K2 = ');

    readln(k2);

    write('K3 = ');

    readln(k3);

    setlength(a,n);

    for i:=0 to n-1 do begin

    write('Заполним номер ',i+1,' -> ');

    readln(a[i]);

    end;

    i:=0;

    while (i<n) do

    begin

    a[i]:=k1-a[i];

    a[i+1]:=k2-a[i+1];

    a[i+2]:=k3-a[i+2];

    inc(i,3);

    end;

    write('K = ');

    readln(k);

    for i:=0 to n-2 do

    if (a[i]+a[i+1]>=k) then begin write('В комнатах ',i+1,' и ',i+2,' есть ',a[i]+a[i+1],' свободных мест'); bb:= true; end;

    if (bb=false) then writeln(0);

    end else writeln('Введите число кратное 3 и неравное 0');

    readln;

    end.

    • Автор:

      dude
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years