


Помогите срочно! Сижу на олимпиаде по ИКТ. Нужно решить 3 задачи
Среда программирования: Паскаль.
Задача №1
Заданы z и y - две последовательности. Можно ли получить последовательность z вычеркиванием элементов из y. Напишите программу, которая определит, можно ли получить последовательность z вычеркиванием элементов из y.
В выходные данные выводится:
"YES" -если последовательность z можно получить вычеркиванием элементов из y.
"NO" - если последовательность z нельзя получить вычеркиванием элементов из y.
Пример:
Вход:
olimp
Polo is integesting game for pupils
Выход:
YES
Задача №3
Строка, состоящая из символов "(" и ")", называется скобочной последовательностью. Скобочная последовательность называется правильной, если она может быть получена из некоторого корректного арифметического выражения удалением символов, кроме скобок. Например, правильная скобочная последовательность "(())()" может быть получена из выражения "(5+(6*7)-2)*(6+5)"
Глубиной правильной скобочной последовательности называется максимальная разность между количеством открывающихся и закрывающихся скобок в префиксе последовательности (префиксом строки S называется строка, которую можно получить из S удалением некоторого количества последних элементов, например префиксами строки "abcab" являются строки " ", "ab", "abc", "abca", "abcab"). Например, глубина последовательности "()()(())" равна двум (префикс "()()((" имеет 4 открывающиеся и 2 закрывающиеся скобки) .
Требуется написать программу, определяющую по заданным значениям n и k количество правильных скобочных последовательностей с n открывающимися скобками, которые имеют глубину, равную k.
Пример 1 :
Вход: 3 2
Выход: 3
Пример 2:
Вход: 37 23
Выход: 203685956218528
PascalABC
в задаче № 3 входные данные содержат в одной строке целые числа n и k (1=
в задаче № 3 входные данные содержат в одной строке целые числа n и k (1=
Наглый неуч, держи первую.
uses crt;
var
z, y: string;
i, j, k, index: integer;
flag: boolean;
begin
clrscr;
writeln('Vvedite posledovatelnost Z:');
writeln;
readln(z);
writeln;
writeln('Vvedite posledovatelnost Y:');
writeln;
readln(y);
writeln;
index := 0;
flag := false;
for i := 1 to Length(z) do
begin
for j := 1 to Length(y) do
if z[ i ] = y[j] then
if j > index then
begin
index := j;
flag := true;
break;
end
else
for k := 1 to i - 1 do
if z[ i ] = z[k] then
continue
else
begin
flag := false;
break;
end;
if not flag then
begin
writeln('NO');
break;
end;
end;
if flag then
writeln('YES');
readln;
end.
да и вообще, на кой черт ты приперся на олимпиаду, если это не твое?
А зачем сидишь на олимпиаде по ИКТ?
Я понимаю "Нужно решить 3 задачи", но не учат у Вас там просить нормально, а только так "Помогите срочно! " в приказном порядке...