Подготовка к олимпиаде по информатике 10-11 класс. Задача 10. Ортогональную целочисленную решетку, состоящую из точек с целыми координатами в декартовой системе координат, будем обозначать через Z2. На решетке Z2 дан простой многоугольник (т. е.

Подготовка к олимпиаде по информатике 10-11 класс 

Задача 10 (16 баллов). Ортогональную целочисленную решетку, состоящую из точек с целыми координатами в декартовой системе координат, будем обозначать через Z2. На решетке Z2 дан простой многоугольник (т. е. без самокасаний и самопересечений, но не обязательно выпуклый) с вершинами в узлах решетки Z2. Найти количество точек решетки Z2, лежащих на границе многоугольника. Входные данные. Входной файл содержит целое число N (3 ≤ N ≤ 1000) – количество вершин многоугольника и последовательность из N пар целочисленных координат вершин многоугольника. Все координаты по модулю не больше 106. Вершины многоугольника заданы в порядке их обхода против часовой стрелки. Выходные данные. В выходной файл вывести одно целое число – количество точек решетки Z2, лежащих на границе многоугольника.

Подготовка к олимпиаде по информатике 10-11 класс

Решение задачи 10.

Язык Паскаль.
program Project_1_10;
{$APPTYPE CONSOLE}
uses SysUtils;
type node = record x, y: integer; end;
var f, g: textfile;
N, a, b, local_npoint, global_npoint, i: integer;
prev, next, start: node;
// Наибольший общий делитель (рекурсивная функция)
function gcd(a, b: integer): integer;
begin
if (b = 0) then result := a
else result := gcd(b, a mod b);
end;
begin
assignfile(f, 'input.txt');
assignfile(g, 'output.txt');
try
reset(f);
rewrite(g);
try
global_npoint := 0;
read(f, N);
read(f, next.x, next.y);
start.x := next.x;
start.y := next.y;
for i := 2 to N do
begin
prev.x := next.x;
prev.y := next.y;
read(f, next.x, next.y);
a := abs(next.x - prev.x);
b := abs(next.y - prev.y);
if (a = 0) then local_npoint := b + 1
else if (b = 0) then local_npoint := a + 1
else local_npoint := gcd(a, b) + 1;
inc(global_npoint, local_npoint);
end;
prev.x := next.x;
prev.y := next.y;
next.x := start.x;
next.y := start.y;
if (a = 0 ) then local_npoint := b + 1
else if (b = 0) then local_npoint := a + 1
else local_npoint := gcd(a, b) + 1;
inc(global_npoint, local_npoint);
writeln(g, global_npoint - N);
finally
closefile(f);
closefile(g);
end;
except
on EInOutError do Writeln('EInOutError!');
end;
end.

Профессиональный репетитор по математике, информатике и физике:

 

Александр Анатольевич Борцов 


КАК ВЫБРАТЬ:
связаться с Александром Анатольевичем
с помощью WhatsApp (лучше) или Telegram
+7-926-859-12-55 

Когда еще учился в аспирантуре, я мечтал собрать во едино  мои основные интересы научной деятельности в области Квантовой физики и лазеров: Математику, Информатику, Физику и Обучение, c самого основания своего продвижения по службе.

Профессиональный математик и физик для школьников и студентов, кандидат физико математических наук, доктор технических наук по специальности радиофизика. Образование: Физический факультет МГУ им.М.В.Ломоносова с отличием, Специальность -Физика. Преподавал в  МЭИ, педагогический стаж более 17 лет. Является автором  монографии на английском языке "Laser Opto-Electronic Oscillator", 2020, изд. Springer. Автор более 60 ти научных публикаций в зарубежных и отечественных научных журналах по темам Квантовая Электроника, Квантовая радиофизика, Лазеры, Наноэлектроника, Лазерный оптоэлектронный генератор и др.. Хорошо   подготовит контрольной работе по математике и физике в 10 класс с помощью интересных технологий по формированию памяти. Помощь в оформлении научных статей.

 Обучал основам Python, MathLab, Data Science и Machine Learning. 

Более 320 учащихся  поступили «на бюджет» в университеты и  ВУЗы Москвы: ВШЭ, , МИРЭА и МГТУ и многие другиеОпыт преподавателя по математике для студентов более 20 лет.Занятия проводятся дистанционно по Skype и Zoom|и очно в Москве м. Китай-город]. Есть большой опыт подготовки к экзаменам по физике и математике по англоязычным программам университетов (SAT,GMAT). По методикам и учебникам университетов готовил к экзаменам по математике и физике  студентов из Канады, Германии, Испании и  Нидерланды. Говорю по английски, владею английским, преподаю на английском математику и физику..
Занятия ведутся И очно в Москве м. Китай-город и дистанционно по Skype и Zoom

Запись на занятия

Ваше сообщение отправлено