<span>За 2. Взвешиваем по три монеты, если одна легче, то фальшивая среди этих трех, если равновесие, то фальшивая среди трех невзвешененных, потом по одной из тройки где фальшивая, и рассуждаем так же, если одна из монет легче, то она фальшивая, а если равновесие, то фальшивая невзвешенная. Точно также из 27 монет можно определить фальшивую за 3 взвешивания, из 81 за 4, из 3 в степени N монет - за N взвешиваний. А если число монет не равно 3 в степени N, то число взвешиваний равно ближайшей большей степени тройки. То есть, например, если монет 74 - то одну монету тоже можно определить за 4 взвешивания, как и среди 81 монеты. А вот если монет 82, то уже только за 5 взвешиваний - ближайшая большая степень двойки - 243 - 2 в степени 5.</span>
3+1=4
4*5=20
20*5=100
100+1=101
101*5=505
Т.е. команды: 12212
//PascalABC.NET
//Версия 3.3, сборка 1634
begin
write(abs(ReadInteger).ToString.Select(x->x.ToDigit).Sum);
end.
Var
i, x, y: integer;
a: array[1..30]of integer;
begin
readln(x, y);
for i := 1 to 30 do read(a[i]);
for i := 1 to 30 do
if (i mod 2 = 0) and (a[i] >= x) and (a[i] <= y) then
begin
write('YES');
exit;
end;
write('NO');
end.
Делим 1000 монет на 4 кучки по 250 монет. В одной из этих кучек есть фальшивая монета(она либо легче либо тяжелее обычной монеты)
ложим на весы две кучки по 250 монет. Если вес у них равен, то среди них нет фальшивой монеты. Ложим две другие кучки. Тот вес, который отличается от прошлого взвешивания говорит о том, что в кучке есть фальшивая монета(это мы определяем на втором взвешивании).
Мы определили кучку с фальшивой монетой. Дальше разбиваем кучу еще раз и повторяем операцию
Изначально кучу можно разбить по разному, например, на 10 кучек по 100 монет