Слить два натуральных числа в новое число, вставив цифры одного числа между цифрами другого числа, сохранив при этом порядок следования цифр в исходных числах. Новое число должно быть максимальным из всех возможных. Ввод:
Во входном файле содержатся две строки, в каждой строке по одному натуральному числу длиной до 100 цифр.
Вывод:
В выходной файл вывести полученное при слиянии число, максимальное из возможных.
Пример работы:
Ввод:
20
4181
Вывод:
421810
Напишите задачу на очень надо
const n=10;
var
min,i: integer;
a: array[1..n] of integer;
begin
randomize;
min:=11;
for i:=1 to n do begin
a[i]:=random(1,10);
write (a[i],' '); // для наглядности. можно удалить
if (i mod 2 =1) and (a[i]<min)
then min:=a[i];
end;
writeln;
writeln ('min = ',min)
end.
Пример:
5 4 7 8 6 2 10 4 9 9
min = 5
2 задача:
const n=10;
var
max,count,i: integer;
a: array[1..n] of integer;
begin
randomize;
max:=0;
count:=0;
for i:=1 to n do begin
a[i]:=random(1,10);
write (a[i],' '); // для наглядности. можно удалить
if a[i]>max
then max:=a[i];
end;
for i:=1 to n do
if max=a[i] then count:=count+1;
writeln;
writeln ('max = ',max);
writeln ('count = ',count);
end.
Пример:
8 5 3 2 2 10 10 9 3 10
max = 10
count = 3
// Внимание! Если программа не работает, обновите версию!
begin
// заполним информацию случайным образом;
// если хорошистов в результате не окажется,
// просто перезапускаем задачу
randomize;
var a:=MatrRandom(13,10,4,5); // везде только 4 и 5
for var i:=1 to 20 do // раскидаем 20 троек
a[Random(13),Random(10)]:=3;
a.Println(2); Writeln;
// собственно, решение
var k:=0;
foreach var r in a.Rows do
if r.All(x->x<>3) and not r.All(x->x=5) then k+=1;
Writeln(k,' хорошистов')
end.
Пример
5 5 4 4 4 5 3 3 4 4
5 4 4 4 3 4 5 5 4 5
5 5 5 3 5 4 4 5 5 4
3 5 4 3 4 4 5 5 5 3
5 3 4 4 5 4 4 5 5 4
3 5 5 5 5 4 4 4 4 3
4 4 5 3 5 4 4 5 4 5
4 5 4 4 4 4 4 4 5 4
3 5 3 4 4 4 4 4 5 3
5 5 4 5 4 4 4 5 4 5
4 5 4 5 4 5 3 4 5 5
4 5 4 4 4 4 5 4 4 5
4 3 5 4 4 4 5 5 3 5
3 хорошистов