Создаёшь в папке с программой два текстовых файла с именами "1.txt." и "output.txt". В первый записываешь 8 чисел без пробелов и запятых ("22031991", например).
type matrix = array [1..8] of integer;var F, output: text; i, n, cc, sum: integer; c: char; x: matrix; ma: real; procedure convert (var c: char; var cc: integer);begin if c='1' then cc:=1; if c='2' then cc:=2; if c='3' then cc:=3; if c='4' then cc:=4; if c='5' then cc:=5; if c='6' then cc:=6; if c='7' then cc:=7; if c='8' then cc:=8; if c='9' then cc:=9; if c='0' then cc:=0;end; procedure sorting (n: integer; x: matrix);begin for n:=1 to 7 do begin if x[n]>x[n+1] then swap(x[n],x[n+1]); end;end; begin Assign(F, '1.txt'); Reset(F); for i:=1 to 8 do begin read(F, c); convert(c,cc); x[i]:=cc; end; Close(F); sorting(n,x); sum:=x[1]+x[2]+x[3]+x[4]+x[5]+x[6]+x[7]+x[8]; ma:=sum/8; Assign(output, 'output.txt'); rewrite(output); writeln(output, sum); writeln(output, ma); Close(output);end.
Лемма. Если на каком-то шаге все куски одинаковой массы m, то можно путём указанных операций сделать так, чтобы все куски стали массой m/2. Доказательство. На первом шаге съедаем кусок массы m и разрезаем другой кусок массы m. Получится 8 кусков массы m и 2 куска массы m/2. Теперь 8 раз съедаем куски m/2 и распиливаем куски массы m.
Перейдём к собственно решению. Понятно, что Саша не мог съесть весь сыр. Поэтому, поскольку он съел целое число граммов сыра, он мог съесть не более, чем 360 - 1 = 359 граммов. Покажем, как он это мог сделать.
Пусть изначально головка сыра была разрезана так: 5 кусков по 512/9 г, 2 куска по 256/9 г, 1 кусок 128/9 г, 1 кусок 32/9 г, 1 кусок 8/9 г (легко проверить, что сумма всех масс равна 360).
Сначала съедим куски массой 8/9, 32/9, 128/9 и распилим три куска по 512/9 г. Останется 2 куска по 512/9 и 8 кусков по 256/9. Затем дважды съедим куски по 256/9 и разрежем оставшиеся куски по 512/9. После этого будет 10 кусков по 256/9.
Уменьшим размер каждого куска в 256 раз (воспользуемся 8 раз процессом, описанным в лемме). Тогда останутся 10 кусков массой 1/9 г. Съедаем один кусок и распиливаем любой оставшийся кусок. Несъеденная масса 9 * 1/9 = 1 г, значил, съел Саша 360 - 1 = 359 г сыра.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку