Ограничение времени 1 секунда Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
Современные генные инженеры создали 26 различных оснований, из которых они собираются конструировать гены. Они обозначили эти основания латинскими буквами от A до Z. Таким образом, структуру любого нового гена можно записать строкой из латинских букв.
Свойства генов в значительной степени определяются парами соседних оснований, например, в геноме «AССABAC» имеются такие пары оснований: «АС», «СС», «СА», «АВ», «ВА», «АС».
Показателем схожести двух геномов ученые считают количество пар соседствующих оснований одного генома, которые имеются в другом геноме.
Вам заданы две последовательности оснований (т.е. два генома), нужно определить показатель схожести одного генома другому.
Формат ввода
Строка 1: представление структуры первого генома в виде непустой строки из заглавных латинских букв A-Z.
Строка 2: представление структуры второго генома в аналогичном виде.
Длины обеих строк не превосходят 105.
Формат вывода
Программа должна вывести одно целое число –- показатель схожести, вычисленный для геномов, заданных в первой и второй строке.
Пример
Ввод Вывод
ABBACAB
BCABB
4
Примечания
Во втором геноме имеются следующие пары оснований первого генома: AB, BB, CA, AB. Так как пара AB в первом геноме встречается два раза, поэтому она подсчитана в ответе два раза, поэтому она подсчитана в ответе два раза.
Формулы площадей квадрата S₁ и круга S₂ известны, что легко позволяет нам найти нужное условие.
Если нужно, чтобы случай, когда квадрат вписан в круг тоже учитывался, строгое неравенство следует заменить нестрогим.
// PascalABC.NET 3.0, сборка 1160 от 05.02.2016
begin
var s1:=ReadReal('Площадь квадрата');
var s2:=ReadReal('Площадь круга');
if pi*s1<2*s2 then Writeln('Квадрат умещается в круге')
else Writeln('Квадрат не умещается в круге')
end.
Тестовое решение:
Площадь квадрата 24.6
Площадь круга 28.4
Квадрат не умещается в круге
//Первый ввод - число, второй - система счисления
//Pascal ABC.NET v3.0
var
a,i,b,r,n,j,bug:integer;
s,se,slo,slof:string;
procedure preob(var a,b,n:integer; var se:string);
begin
repeat
b:=a mod n;
a:=a div n;
str(b,se);
s+=se;
until (a<=n-1);
end;
begin
readln(slo);
readln(n);
for j:=1 to length(slo) do
begin;
a:=ord(slo[j]);
preob(a,b,n,se);
str(a,se);
s+=se;
for i:=1 to length(s) div 2 do
begin;
se:=s[i];
s[i]:=s[length(s)-i+1];
s[length(s)-i+1]:=se[1];
end;
write(s,'-');
slof:=slof+s;
delete(s,1,length(s));
end;
end.
//Слово Программа она кодирует как 11001111-11110000-11101110-11100011-11110000-11100000-11101100-11101100-11100000-