Задача C. From And with love Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 1 секунда
Ограничение по памяти: 256 мегабайт
Абай очень любит массивы. Еще больше он любит играть с подпоследовательностями массива.
Подпоследовательность — это такая последовательность массива, которая может быть получена
удалением нескольких (возможно ноль) элементов из этого массива. Вам дан массив A из N целых чисел. Рассмотрим какую–нибудь подпоследовательность массива. Пусть битовый AND этой
подпоследовательности равен X. Тогда подпоследовательность называется хорошей, если в ней нет
элемента со значением X. Посчитайте количество хороших подпоследовательностей.
Формат входных данных
В первой строке дается натуральное число N — размер массива A.
В следующей строке заданы N целых неотрицательных чисел — элементы массива A.
Формат выходных данных
Выведите одно число — количество хороших подпоследовательностей. Так как ответ может быть
достаточно большим, выведите его остаток от деления на 109 + 7.
РЕШЕНИЕ НА С
n=5;
Var
ar:array[1..n] of integer;
ar2:array[1..n] of integer;
i,k:integer;
function prost(a:integer):boolean;
var i:integer;
b:boolean;
begin
b:=true;
for i:=2 to a div 2 do
if a mod i=0 then
begin;
b:=false;
break;
end;
if a=1 then b:=false;
prost:=b;
end;
begin;
randomize;
k:=0;
for i:=1 to n do
begin;
ar[i]:=random(101);
write(ar[i]:4);
end;
writeln;
for i:=1 to n do
if prost(ar[i]) then
begin;
inc(k);
ar2[k]:=ar[i];
write(ar2[k]:4);
end;
end.
Формулы площадей квадрата 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
Квадрат не умещается в круге