Počet bodov:
Popis:  12b
Program:  8b

Ako všetci dobre vieme, Marťania náš často navštevujú vo svojich lietajúcich tanieroch. Marťan Denys práve dostal vodičský preukaz. Rozhodol sa ho naplno využiť a priletieť na Slovensko po legendárnu kofolu a horalky (tie na Marse nedostať). To však precenil svoje letecké schopnosti, pretože zabudol na ďalšiu vec, ktorú na Marse nemajú1 – atmosféru. A Denys si to nevedomky namieril rovno do snehovej búrky.

Neostávalo mu nič iné, ako zavolať do KSP2 a oznámiť svoje núdzové pristátie na jednej z ich pristávacích dráh. Tisícky KSPákov na ňu okamžite vybehli v snahe byť prvými, ktorí Denysa privítajú. To však nie je úplne jednoduché – Denysa snehová búrka kotrmáca hore-dolu, a tak síce dokáže technikou Kontrolovaného Samovoľného Pádu zaručiť, že “pristane” na dráhe, nevie však, kde na nej sa nakoniec ocitne.

Každý vedec si teda vybral nejaké miesto na dráhe, na ktoré sa postavil a úzkostlivo čaká, kde Denys nakoniec skončí. Hneď ako pristane, každý z nich sa plnou rýchlosťou rozbehne jeho smerom.

KSP programátorom sa podarilo pomocou simulácie vypočítať niekoľko pravdepodobných miest na dráhe, na ktorých by Denys mohol skončiť. KSPákov teraz pre každé z týchto miest nesmierne zaujíma, kto by sa k Denysovi dostal ako prvý, keby Denys pristál na tomto mieste. KSP potrebuje vašu pomoc!

Úloha

Pristávacia dráha je veľmi dlhá, rovná cesta. Pozíciu každého KSPáka či možného Denysovho pristátia si preto vieme jednoducho vyjadriť vzdialenosťou od jej začiatku v metroch.

Každý KSPák sa postavil na nejaký meter \(x_i\) na pristávacej dráhe a keď Denys pristane, rozbehne sa k nemu rýchlosťou \(v_i\) metrov za sekundu. Pre každú polohu pristátia v zozname zistite, ktorí KSPáci by Denysa privítali ako prví, keby pristál na nej.

Formát vstupu

V prvom riadku vstupu sú dve celé čísla \(n, q\) (\(1 \leq n,q \leq 300\,000\)): počet KSPákov a počet možných miest, na ktorých Denys možno nakoniec pristane. KSPáci sú očíslovaní od \(1\) po \(n\).

Nasleduje \(n\) riadkov, \(i\)-ty z nich obsahuje dve celé čísla \(x_i, v_i\) – začiatočnú polohu a rýchlosť KSPáka číslo \(i\). Dvojice \(x_i, v_i\) sú navzájom rôzne. Platí \(0 \leq x_i < 10^9\) a \(0 < v_i \leq 10^9\).

Nakoniec, v poslednom riadku vstupu je \(q\) medzerou oddelených celých čísel \(y_1, y_2, \dots, y_q\) (\(0 \leq y_j < 10^9\)) – zoznam možných pristávacích miest. Sú navzájom rôzne a žiadne z nich sa nerovná začiatočnej polohe niektorého KSPáka.

Formát výstupu

Vypíšte \(q\) riadkov. V \(j\)-tom z nich vypíšte počet KSPákov, ktorí by Denysa privítali ako prví, keby pristál na \(y_j\)-tom metri pristávacej dráhy – teda počet takých \(i\), pre ktoré \(1 \leq i \leq n\) a zlomok \(\frac{|x_i - y_j|}{v_i}\) je najmenší cez všetky \(i\). Následne do toho istého riadku vypíšte čísla všetkých takýchto KSPákov, zoradené vzostupne.

Hodnotenie

Pre jednotlivé testovacie sady platia nasledovné obmedzenia:

číslo sady \(1\) \(2\) \(3\) \(4\) \(5\) \(6\) \(7\) \(8\)
\(n,q \leq\) \(500\) \(3\,000\) \(25\,000\) \(50\,000\) \(75\,000\) \(100\,000\) \(200\,000\) \(300\,000\)

Navyše, v sadách \(3,4,5\) platí \(x_i < y_j\) pre všetky zmysluplné \(i, j\) – teda všetci KSPáci stoja naľavo od všetkých možných pristávacích miest.

Príklady

Input:

4 7
10 5
30 1
20 4
100 1
5 31 22 15 85 60 61

Output:

1 1
1 2
1 3
1 1
2 1 4
2 1 3
1 1

Input:

3 4
10 5
30 1
20 4
31 85 60 61

Output:

1 2
1 1
2 1 3
1 1

Toto je príklad vstupu v sadách 3,4,5


  1. takmer

  2. Kerbal Space Program

Odovzdávanie

Na odovzdávanie sa musíš prihlásiť

Otázky a diskusia

Po skončení kola budete mať príležitosť na diskutovanie o riešeniach v diskusii pod vzorovým riešením.