Nu aveti permisiuni pentru a descarca fisierul grader_test6.ok
Diferente pentru problema/hidden_points intre reviziile #51 si #52
Nu exista diferente intre titluri.
Diferente intre continut:
Jon şi Daenerys trebuie să găsească un plan de atac pentru a învinge armata morţilor. Cei doi ştiu exact numărul inamicilor, dar nu şi poziţiile acestora. Pentru a afla locaţiile lor, Jon îi dă lui Daenerys ecuaţia unei drepte iar apoi ea zboară cu dragonii săi şi numără câţi inamici se află strict la stânga dreaptei. Cei doi repetă procesul până când Jon reuşeşte să găsească poziţiile tuturor inamicilor. Deoarece Jon nu se pricepe la probleme de geometrie, acesta vă roagă pe voi să îl ajutaţi. Vi se dă $N$, numărul inamicilor, iar voi trebuie să le aflaţi poziţiile folosindu-vă de query-uri de tip:
* $? X{~1~} Y{~1~} X{~2~} Y{~2~}$, unde $X{~1~}$, $Y{~1~}$, respectiv $X{~2~}, Y{~2~}$ reprezintă coordonatele a două puncte în plan. Veţi primi în schimb un număr care reprezintă numărul de puncte aflate la stânga dreptei determinată de punctele $(X{~1~}, Y{~1~}), (X{~2~}, Y{~2~})$ (vezi restrictiisi precizari pentru definitia exacta).
* $? X{~1~} Y{~1~} X{~2~} Y{~2~}$, unde $X{~1~}$, $Y{~1~}$, respectiv $X{~2~}, Y{~2~}$ reprezintă coordonatele a două puncte în plan. Veţi primi în schimb un număr care reprezintă numărul de puncte aflate la stânga dreptei determinată de punctele $(X{~1~}, Y{~1~}), (X{~2~}, Y{~2~})$ (vezi restricţii şi precizări pentru definiţia exactă).
* $! X{~1~} Y{~1~} X{~2~} Y{~2~} ... X{~N~} Y{~N~}$, unde $X{~P~}$, $Y{~P~}$, reprezintă coordonatele poziţiilor găsite. Acest tip de query se va face o singură dată.
* Pentru interogari, $0 ≤ X, Y ≤ 100.001$. * Pentru $20$ puncte, $N ≤ 10$ şi pentru toate punctele $0 ≤ X, Y ≤ 10$. * Pentru alte $20$ puncte, coordonatele $X{~i~}$ si $Y{~i~}$ a oricarui punct sunt distincte.
* Dacafolositi puncte cu coordonate neintregi la query,vetiluati $80%$ din punctajul pe test. * Pentru toate subtaskurile mai putin primul, dacă folosiţi peste $5 × N × log(100.000)$ query-uri, luaţi $30%$ din punctajul pe test (aceastarestrictie este multiplicativacu cea precedenta). * Punctul $(X, Y)$ se aflala stânga dreptei determinate de punctele $(A, B), (C, D)$ dacasi numai daca$AD + CY + XB > BC + DX + YA$ * **Dacase dau douapuncte identice la o interogare de tipul $1$, se vor lua 0 puncte, cu mesajul "Wrong interaction!"**
* Dacă folosiţi puncte cu coordonate neîntregi la query, luaţi $80%$ din punctajul pe test. * Pentru toate subtaskurile mai puţin primul, dacă folosiţi peste $5 × N × log(100.000)$ query-uri, luaţi $30%$ din punctajul pe test (această restricţie este multiplicativă cu cea precedentă). * Punctul $(X, Y)$ se află la stânga dreptei determinate de punctele $(A, B), (C, D)$ dacă şi numai dacă $AD + CY + XB > BC + DX + YA$ * **Dacă se dau două puncte identice la o interogare de tipul $1$, se vor lua 0 puncte, cu mesajul "Wrong interaction!"**
* **Dacă query-ul este invalid veţi primi ca răspuns valoarea -1 şi se va termina programul.** h2. Exemplu