На одну чашу весов поместим две монеты, на другую – монету и гирю. Если весы уравновесятся, то фальшивая монета та, что осталась. За второе взвешивание определим, легче она или тяжелее любой из настоящих монет (или гири). Если же весы не уравновесятся, то наверняка можно утверждать, что настоящей является отложенная монета. Предположим, что перевесила чаша, на которой находятся две монеты. Сравним эти монеты при втором взвешивании. Если весы уравновесятся, то фальшивая монета легче, и она находится рядом с гирей. В противном случае фальшивой окажется более тяжелая из двух сравниваемых монет.
Поделитесь своими знаниями, ответьте на вопрос:
Решить на питон! В одном курином ресторане можно купить: 1 ножку + 1 крыло, 1 ножку + 1 бедро, 1 бедро, 2 крыла, 3 крыла. Требуется определить, можно ли купить ровно k крыльев, n ножек и b бедер.
// Внимание! Если программа не работает, обновите версию!
begin
var s1:=SeqRandom(ReadInteger('n1='),-50,50);
var s2:=SeqRandom(ReadInteger('n2='),-50,50);
var p:=ReadInteger('0-по неубыванию, иное- по невозрастанию:');
var q1:=new Queue<integer>;
foreach var m in s1 do q1.Enqueue(m);
Write('Очередь 1: ',q1); Writeln;
var q2:=new Queue<integer>;
foreach var m in s2 do q2.Enqueue(m);
Write('Очередь 2: ',q2); Writeln;
// очереди сформированы
var q:=new Queue<integer>;
var a:=(q1.ToArray+q2.ToArray);
var s:sequence of integer;
if p=0 then s:=a.OrderBy(i->i)
else s:=a.OrderByDescending(i->i).ToArray;
foreach var m in s do q.Enqueue(m);
Write('Очередь-результат: ',q); Writeln;
end.
Пример
n1= 10
n2= 7
0-по неубыванию, иное- по невозрастанию: 1
Очередь 1: [-26,6,26,-48,-21,-29,27,-39,5,-40]
Очередь 2: [50,36,37,46,18,41,-39]
Очередь-результат: [50,46,41,37,36,27,26,18,6,5,-21,-26,-29,-39,-39,-40,-48]