Интересно, какое максимальное число можно получить из числа 6789012345 путем вычеркивания в нем пяти цифр? Правильно: 92345
Напишите программу, которая по введенному числу и количеству цифр, которые необходимо вычеркнуть, получает максимальное число.
Формат ввода
В первой строке входного файла записаны два числа N и M — количество цифр в данном числе и количество цифр, которое необходимо вычеркнуть (0 ≤ M ≤ N ≤ 100). Во второй строке записано ровно N цифр — исходное число. Число может содержать лидирующие нули.
Формат вывода
В выходной файл выведите ответ на задачу — искомое максимальное число.
НА ЛЮБОМ ЯЗЫКЕ
n = 10;
var
a: array[0..10] of integer;
i, s: integer;
begin
//Заполнение массива сл. числами
for i := 1 to n do
begin
a[i] := random(201) - 100;
write(a[i]:4);
end;
writeln;
//1) Все элементы не превышающие число 100
writeln('Не больше 100 ');
for i := 1 to n do
if a[i] <= 100 then
write( a[i]:4);
writeln;
// 2) Все четные элементы
writeln('Кратные двум ');
for i := 1 to n do
if a[i] mod 2 = 0 then
write( a[i]:4);
writeln;
// 3) Все элементы, являющиеся трехзначными числами
writeln('Трехзначные ');
for i := 1 to n do
if (a[i] < -99) or (a[i] > 99) then
write(a[i]:4);
writeln;
// 4) Третий, шестой и т.д элементы.
i := 3;
writeln(' номера 3, 6, 9 и т.д.');
while i < n do
begin
write(a[i]:4);
i := i + 3;
end;
end.
var
i,a,b:integer;
ar:array[1..10] of integer;
procedure oddDec(var a,b:integer); //подпрограмме переданы аргументы a и b
//процедура для вычитания в нечётном элементе
begin;
a:=a-b;
end;
procedure NotoddInc(var a,b:integer); //подпрограмме переданы аргументы a и b
//процедура для сложения в чётном элементе
begin;
a:=a+b;
end;
begin
randomize;
readln(a); //ввод a
readln(b); //ввод b
writeln('Array:');
for i:=1 to 10 do //весь массив
begin;
ar[i]:=random(-20,80); //случайные числа от -20 до 80 включительно
write(ar[i]:4); //вывод
if odd(i) then oddDec(ar[i],b) else NotoddInc(ar[i],a);
{если нечётное, то первая процедура, иначе вторая. Обращаю внимания на то, что элементы меняются сразу после вывода}
end;
writeln;
writeln('Final array:'); //вывод получившегося массива
for i:=1 to 10 do
write(ar[i]:4);
end.
Пример ввода:
20
10
Пример вывода:
Array:
10 16 0 60 23 4 22 -20 4 55
Final array:
0 36 -10 80 13 24 12 0 -6 75