Pascal. Задача 8-35
Системный администратор раз в неделю создаёт архив пользовательских файлов. Однако объём диска, куда он помещает архив, может быть меньше, чем суммарный объём архивируемых файлов. Администратор хочет сэкономить место на диске для хранения архивов и для этого выбирает 4 наибольших по объему архивов и удаляет их, тем самым сэкономив место на диске. Известно, какой объём занимает файл каждого пользователя. По заданной информации об объёме файлов пользователей, определите сэкономленное администратором место.
Входные данные. В первой строке входного файла находится число N — количество пользователей (натуральное число большее 10, не превышающее 1000). В следующих N строках находятся значения объёмов файлов каждого пользователя (все числа натуральные, не превышающие 100), каждое в отдельной строке. Запишите в ответе одно число: сэкономленное администратором место.
Для решения использовать файл test-8-35-1.txt
var
f : text;
N, i, j, tmp : integer;
a : array[1..1000] of integer;
str : string;
sorted : boolean;
begin
Assign(f, 'C:\PABCWork.NET\test-8-35-1.txt');
Reset(f);
Readln(f, N);
for i := 1 to N do
Readln(f, a[i]);
Close(f);
// Сортировка по возрастанию методом пузырька
for i := 1 to N do begin
sorted := true;
for j := 1 to N - i do
if a[j] > a[j + 1] then begin
tmp := a[j + 1];
a[j + 1] := a[j];
a[j] := tmp;
sorted := false;
end;
if sorted then break;
end;
// Сумма последних четырех элементов
tmp := 0;
for i := N downto N - 3 do begin
tmp := tmp + a[i];
end;
Writeln(tmp);
end.