Поделитесь своими знаниями, ответьте на вопрос:
D. унисон ≡ входной файл: стандартный вход ограничение времени: 1 сек выходной файл: стандартный выход ограничение памяти: 512 мб максимальный : 100 условие два друга-ирландца фаолан и леон любят петь, особенно в праздники, когда они могут собраться и петь песни вместе. хоть они и друзья, у них не так много общих песен, но это не мешает им пытаться петь разные песни одновременно. друзья обнаружили, что разные строки двух песен совместимы и могут быть спеты в унисон, если у строк одинаковая интонация, а количество слогов в этих строках совпадает. интонация строки считается восклицательной, если в строке есть восклицательный знак (ascii 33), и нейтральной во всех остальных случаях. для слогораздела фаолан предлагает использовать общепринятую систему, в которой слогообразующим является гласный звук, и при этом два гласных звука не могут находиться в пределах одного слога. в случае, когда слово целиком состоит из согласных, оно за слог не считается, а производимый им согласный звук сливается со слогом в следующем или предыдущем слове. когда фаолан и леон поют, они следуют по текстам своих песен слева направо, сверху вниз, с удовольствием распевая в унисон совместимые строки и пропуская все остальные. сейчас друзья планируют заранее свое выступление, и им интересно, для данных двух песен, сколько суммарно децисекунд они могут пропеть в унисон при условии, что каждый слог пропевается в течение одной децисекунды. естественно, друзей интересует максимально возможная величина. формат входных данных в первой строке входных данных содержатся целые числа n m nm : количество строк в первой и второй песне соответственно. далее следуют n + m n+m строк, содержащих текст первой и затем второй песни. каждая строка может состоять только из печатных ascii символов. формат выходных данных выходные данные должны содержать одно целое число: максимальное количество децисекунд, в течение которых друзья могут петь в унисон. ограничения 1 ≤ n , m ≤ 10 6 1≤n, m≤106 n ∗ m ≤ 10 7 n∗m≤107 длина каждой строки не превосходит 50 50 .
i: Integer; // рабочая переменная для for
k: Integer; // количество минимальных элементов
n: Integer; // размер массива m : array [1..10] of Integer; // Собственно сам массив из "n" элементов
i_min : Integer; // Индекс минимального элемента в массиве
begin
n:=10; k := 0; i_min := 1;
for i := 1 to n do
begin
m[i] := Random(10); // 10 - Число от балды
if (m[i]<m[i_min]) then
begin
k := 1;
i_min := i
end
else
if (m[i]=m[i_min]) then
inc(k);
end;
// В переменной "k" - находится количество минимальных элементов
end;