Разбор
Джонни Инглиш и Боф достигают конечной точки одновременно за время . Джонни Инглиш преодолевает расстояние , а Боф . Отношение пройденных расстояний равно отношению скоростей: .
Построим такие пути конструктивно. Рассмотрим, например, маршрут из точек: . Здесь выбрана координата , чтобы ее значение было неотрицательным (по условию задачи ).
Длина пути Джонни Инглиша равна .
Длина пути Бофа равна .
Если скорости Джонни Инглиша и Бофа одинаковы, то точки и совпадают, а по условию задачи на маршруте не может быть двух одинаковых точек подряд. В этом случае в качестве решения можно выбрать, например, следующий маршрут: .
Реализация алгоритма
Читаем входные данные.
scanf("%d %d", &q, &p);
Если скорости Джонни Инглиша и Бофа одинаковы, то они движутся из точки в точку .
if (q == p) { printf("2\n"); printf("%d %d\n", 0, 0); printf("%d %d\n", 1, 0); return 0; }
Если , то маршрут состоит из четырёх точек.
printf("4\n"); printf("%d %d\n", 0, 0); printf("%d %d\n", 2 * q, 0); printf("%d %d\n", 2 * q, p - q); printf("%d %d\n", 2 * q, 0);