// pascalabc.net 3.0, сборка 1088 const nday: array[1..12] of integer=(31,28,31,30,31,30,31,31,30,31,30,31); type date=record day,month,year: integer end; function dow(dat: date): integer; // день недели по дате. 0-вс. 1-пн, 7-сб var a,y,m: integer; begin with dat do begin a: =(14 - month) div 12; y: =year-a; m: =month+12*a-2; dow: =(7000+(day+y+y div 4-y div 100+y div 400+(31*m) div 12)) mod 7 end end; procedure dmy2date(d,m,y: integer; var data: date); // преобразует к дате заданные день, месяц и год begin data.day: =d; data.month: =m; data.year: =y end; procedure lastdays(month,year: integer; var wd,fr: date); // даты последней среды (wd) и пятницы (fr) для месяца в году } var lastday: date; n: integer; begin n: =nday[month]; if (month=2) and (year mod 4 = 0) then inc(n); dmy2date(n,month,year,lastday); n: =dow(lastday); // номер последнего дня недели wd.month: =month; wd.year: =year; if n< 3 then wd.day: =lastday.day-(n+4) else if n=3 then wd.day: =lastday.day else wd.day: =lastday.day+3-n; fr.month: =month; fr.year: =year; if n< 5 then fr.day: =lastday.day-(n+2) else if n=3 then fr.day: =lastday.day else fr.day: =lastday.day-1 end; var wd,fr: date; ff,mf: text; m: integer; begin assign(ff,'father.txt'); rewrite(ff); assign(mf,'mother.txt'); rewrite(mf); // сентябрь-декабрь 2015 года for m: =9 to 12 do begin lastdays(m,2015,wd,fr); if odd(wd.day) then writeln(mf,wd.day,'.',m,'.2015 - 1 класс') else writeln(ff,wd.day,'.',m,'.2015 - 1 класс'); if odd(fr.day) then writeln(mf,fr.day,'.',m,'.2015 - 5 класс') else writeln(ff,fr.day,'.',m,'.2015 - 5 класс') end; // январь - май 2016 года for m: =1 to 5 do begin lastdays(m,2016,wd,fr); if odd(wd.day) then writeln(mf,wd.day,'.',m,'.2016 - 1 класс') else writeln(ff,wd.day,'.',m,'.2016 - 1 класс'); if odd(fr.day) then writeln(mf,fr.day,'.',m,'.2016 - 5 класс') else writeln(ff,fr.day,'.',m,'.2016 - 5 класс') end; close(ff); close(mf) end. содержимое выходных файлов: father.txt 30.9.2015 - 1 класс 28.10.2015 - 1 класс 30.10.2015 - 5 класс 30.12.2015 - 1 класс 24.2.2016 - 1 класс 26.2.2016 - 5 класс 30.3.2016 - 1 класс mother.txt 25.9.2015 - 5 класс 25.11.2015 - 1 класс 27.11.2015 - 5 класс 25.12.2015 - 5 класс 27.1.2016 - 1 класс 29.1.2016 - 5 класс 25.3.2016 - 5 класс 27.4.2016 - 1 класс 29.4.2016 - 5 класс 25.5.2016 - 1 класс 27.5.2016 - 5 класс
kisa-luba
10.01.2021
Предположим, что максим и ербол играют по оптимальной стратегии. для удобства введем два понятия: выигрышная позиция и проигрышная позиция. выигрышная - это позиция, которая приводит игрока, ходившего с нее, к выигрышу. проигрышная - это позиция, которая приводит игрока, ходившего с нее, к проигрышу. также выигрышная позиция - это позиция, ведущая противника к проигрышной. и наоборот, проигрышная позиция - это позиция, ведущая противника к выигрышной. вести понятия будем относительно ербола. рассмотрим все возможные варианты размера шоколадки: 1x1 - lose. позиция проигрышная, т.к. ербол не сможет сделать ход. 1xn, n > 1 - win. все позиции вида такого вида выигрышные, т.к. приводят к проигрышной позиции 1x1. 2x2 - lose. позиция проигрышная, т.к. приводит противника к выигрышной позиции 1xn. 2xn - win. все позицию такого вида выигрышные, т.к. приводят противника к проигрышной позиции 2x2. 3x3 - lose. позиция проигрышная, т.к. приводит противника к выигрышной позиции 2xn или 1xn. 3xn - win. все позицию такого вида выигрышные, т.к. приводят противника к проигрышной позиции 3x3. отсюда несложно заметить, что позиции вида nxn - проигрышные, а остальные - выигрышные. ответ: если a = b, то выиграет максим, иначе выиграет ербол
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Розробіть алгоритм і програму визначення суми додатніх цілих чисел(число n ввести з клавіатури)(delphi)