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.
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!
procedure MakeFile(path:string);
// не относится к заданию, создает файл Text со 100 числами
begin
WriteLines(path,SeqRandom(100,-99,99).Select(x->x.ToString))
end;
begin
MakeFile('MyFile1.txt');
// теперь у нас есть текстовый файл из 100 случайных чисел
// собственно, решение
var n:=ReadInteger('Укажите количество чисел:');
var a:=ReadLines('MyFile1.txt').Take(n).ToArray;
Writeln('Исходная последовательность'); a.Println;
Writeln('Результирующая последовательность');
a:=a.OrderBy(x->x.Last).ToArray; a.Println;
WriteAllLines('MyFile2.txt',a);
end.
Пример
Укажите количество чисел: 15
Исходная последовательность
51 -9 17 -12 7 -15 -20 50 98 19 56 67 -57 -42 64
Результирующая последовательность
-20 50 51 -12 -42 64 -15 56 17 7 67 -57 98 -9 19