Dünyəvi qəbul#9061

Dünyəvi qəbul (Həll təhlili)

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).

Ə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);