Conni Inglis və Bof son nöqtəyə eyni vaxtda zamanına çatırlar. Conni Inglis məsafəni s_1 = p \cdot t, Bof isə s_2 = q \cdot t dərəcədə qət edir. Keçmiş məsafələrin nisbəti sürətlərin nisbətinə bərabərdir: s_1 / s_2 = p / q.
Belə yolları konstruktiv şəkildə quracağıq. Məsələn, nöqtədən ibarət marşrutu nəzərdən keçirək: (0, 0) → (2q, 0) → (2q, p - q) → (2q, 0). Burada, p - q koordinatı mənfi olmayacaq şəkildə seçilmişdi (problemin şərtinə görə q \le p).
Conni Inglisin marşrutunun uzunluğu 2q + 2 * (p - q) = 2p-ə bərabərdir.
Bofun marşrutunun uzunluğu -ə bərabərdir.
Əgər Conni Inglis və Bofun sürətləri eynidirsə, onda nöqtələr (2q, 0) və (2q, p - q) üst-üstə düşür və problemin şərtinə görə marşrutda üst-üstə düşən iki ardıcıl nöqtə ola bilməz. Belə bir halda, həll kimi aşağıdakı marşrut seçilə bilər: (0, 0) → (1, 0).
Alqoritmin Tətbiqi
Girişi oxuyuruq.
scanf("%d %d", &q, &p);Əgər Conni Inglis və Bofun sürətləri bərabərdirsə, onda onlar nöqtəsindən nöqtəsinə hərəkət edir.
if (q == p)
{
printf("2\n");
printf("%d %d\n", 0, 0);
printf("%d %d\n", 1, 0);
return 0;
}Əgər p \ne q olarsa, marşrut dörd nöqtədən ibarətdir.
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);