На питоне ! ! 50
беси сбежала и прячется на холме, покрытом высокой травой. фермер джон, пытаясь поймать беси, решил ползти по траве на руках и коленях так, чтобы подобраться незамеченным. трава перед фермером джоном выглядит как строка из n круглых скобок, например: фермер джон знает, что задние ноги беси выглядят как две соседних левых скобок а передние ноги выглядят как пара соседних правых скобок поэтому местоположение беси может быть описано парой индексов x < y таких, что (( находятся на позиции x, а )) находятся на позиции y. вычислите количество различных позиций, в которых может находиться беси. формат входных данных первая строка содержит строку из скобок длиной n (1 6 n 6 50 000). формат выходных данных выведите количество позиций, в которых может стоять беси (то есть количество таких различных пар (x,y), что x < y и (( стоят на позиции x, а )) стоят на позиции y). примеры стандартный ввод стандартный вывод 4 замечание пояснение к примеру. всего имеется четыре варианта расположения беси, они указаны ниже: 1. 2. 3. 4.
auto = true;
var
a: array[1..100, 1..100]of real;
b: array[1..100]of real;
n, m, j, i: integer;
gmax, min, max: real;
begin
read(n, m);
for i := 1 to n do
for j := 1 to m do
begin
if auto then
a[i, j] := random(100)
else
read(a[i, j]);
if abs(gmax) < abs(a[i, j]) then
gmax := a[i, j];
end;
for i := 1 to n do
begin
min := a[i, 1] / gmax;
max := a[i, 1] / gmax;
for j := 1 to m do
begin
a[i, j] := a[i, j] / gmax;
if min > a[i, j] then min := a[i, j];
if max < a[i, j] then max := a[i, j];
write(a[i, j]:5:2, ' ');
end;
b[i] := max - min;
writeln(' => ', b[i]:5:2);
end;
end.
1)У 60 человек есть кошка и собака.
у 20 - кошка и птичка
у 30 - собака и птичка
У 10 человек есть и кошка, и собака, и птичка. 1.1
Отсюда делаем вывод, что набор пар животных 60, 20 и 30 три раза посчитали тех у кого одновременно все эти трое видов животных есть.
теперь считаем:
у 60-10=50 есть только кошка и собака(без птички!) 1.2
у 20-10=10 есть только кошка и птичка(без собаки!) 1.3
у 30-10=20 есть только собака и птичка(без кошки!) 1.4
2)у 150 человек есть кошка
у 130 - собака
у 50 - птичка.
Это у кого возможно по два-три животных посчитаем, нужно их почистить:
2.1) уберем у кошколюбов тех у кого по 2-3 вида животных:
это 1.1, 1.2, 1.3 множества: 150-10-50-10=80 есть только кошки
2.2) уберем у собаководов, тех у кого по 2-3 вида животных:
это 1.1, 1.2, 1.4 множества: 130-10-50-20=50 есть только собаки.
2.3) уберем у птицефилов, тех у кого по 2-3 вида животных:
это 1.1, 1.3, 1.4 множества: 50-10-10-20=10 есть только птицы.
3) Теперь можем сложить чистую информацию:
чистые(не пересекающиеся с остальными) множества:
не забудем про 4.1) У 70 человек вообще нет домашнего животного
1.1, 1.2, 1.3, 1.4, 2.1, 2.2, 2.3, 3.1
10+50+10+20+80+50+10+70=300