Предмет: Информатика, автор: megatanya123

ПАСКАЛЬ. Вова попал на космическом корабле на бесконечную плоскую планету в точку с координатами (x1, y1). Вова, управляя кораблем, имеет возможность за одну секунду телепортироваться из точки (x, y) в одну из точек (x+C, y+C), (x+C, y-C), (x-C, y+C), (x-C, y-C), где C - произвольное натуральное число, которое можно изменять на каждом ходу.

Требуется написать программу, которая определит, через какое минимальное время Вове удастся достичь точки (x2, y2).

Входные данные

Входной файл INPUT.TXT содержит в первой строке числа x1, y1, во второй – x2, y2. Все числа целые от нуля до 106. Точки (x1, y1) и (x2, y2) не совпадают.

Выходные данные

Выходной файл OUTPUT.TXT должен содержать одно число – минимальное время телепортации. Если такая телепортация невозможна, то вывести 0.

Ответы

Автор ответа: nelle987
0

1. Заметим, что такими манипуляциями нельзя поменять чётность произведения xy, где (x, y) - текущие координаты корабля. Если угодно, можно представить бесконечное поле для шахмат, корабль ходит как слон - только по диагонали, поэтому цвет поля не меняется.
2. Естественно "развернуть" координаты так, чтобы "горизонтальное" и "вертикальное" направления были вдоль диагоналей. Это делается путем преобразования x' = x + y, y' = x - y.
3. В новых координатах корабль может ходить по горизонтали и вертикали, при этом в любую достижимую точку он придет не более чем за 2 шага. За 1 шаг он придет, если стоит в той же горизонтали или вертикали.
4. Для простоты сдвинем начало координат в начальную точку, тогда точка назначения будет иметь координаты x' = (x2 - x1) + (y2 - y1), y' = (x2 - x1) - (y2 - y1)


Решение, PascalABC.NET:


begin
  var inf := OpenRead('INPUT.TXT');
  var outf := OpenWrite('OUTPUT.TXT');
  var x1, x2, y1, y2: longint;
  read(inf, x1, y1, x2, y2);
  if (x1 * y1 - x2 * y2) mod 2 = 0 then
  begin
    (x2, y2) := ((x2 - x1) + (y2 - y1), (x2 - x1) - (y2 - y1));
    if x2 * y2 = 0 then
      write(outf, 1)
    else 
      write(outf, 2);
  end
  else
    write(outf, 0);
  close(inf);
  close(outf);
end.
Похожие вопросы
Предмет: Английский язык, автор: erkinalitansuluu
... you look at it, it’s a nagging problem of the 21st century.
A) However
B) Though
C) Despite
D) Because
9. He can’t help you ... you tell him what really happened.
A) if
B) unless
C) even
D) although
10. ... I were you, I’d listen to your mum, she is right.
A) If
B) So
C) In case
D) When
Задание 3. Выберите правильный вариант ответа.
1. Mark usually goes to … school to take the children home.
A) a
B) the
C) an
D) – (nothing)
2. After the accident five people had to go to … hospital.
A) a
B) the
C) an
D) – (nothing)
3. What … unusual dress she has got! It’s all blue with pink stripes and golden pattern.
A) a
B) the
C) an
D) – (nothing)
4. Look! It’s raining again! What … ghastly weather we are having.
A) a
B) the
C) an
D) – (nothing)
5. It’s … pity you don’t write love stories. You’d make the most of it!
A) a
B) the
C) an
D) – (nothing)
6. I was born in a small town on … Volga.
A) a
B) the
C) an
D) – (nothing)
7. How many people have been on top of … Everest so far?
A) a
B) the
C) an
D) – (nothing)
8. Yesterday we couldn’t find … Ann’s gloves, which she’d bought in a sale.
A) a
B) the
C) an
D) – (nothing)
9. You will be surprised if I tell you that … Scotts have invited us for dinner.
A) a
B) the
C) an
D) – (nothing)
10. Russia has strong trade ties with … People’s Republic of China.
A) a
B) the
C) an
D) – (nothing)
Задание 4. Переведите на английский язык.
1. Какой большой пушистый черный кот! Не похоже, что он бездомный.
2. Какое облачное небо! Звезд совсем не видно.
3. Какие смешные истории Джек рассказал нашему классу вчера!
4. Какой же добрый у тебя отец, раз он не наказал тебя за эту шалость!
5. Входите, пожалуйста, мы так рады вас видеть в нашем доме!
6. Что за необыкновенное стихотворение! Оно мне так понравилось!
7. Какой же он необыкновенный человек! Я бы так не смог!
8. Смотрите, какой спокойный ребенок! До чего же хорошо он воспитан!
Предмет: Литература, автор: InnksMalinka