Să considerăm o reţea de celule, în care colţul din stânga-sus are coordonatele carteziene . În interiorul acestei reţele se află un dreptunghi (pe care îl vom nota în continuare cu ) cu laturi paralele cu axele de coordonate, compus din celule ale reţelei.
Cerință
Determinaţi amplasarea dreptunghiului .
Interacţiune
Programul vostru nu va citi şi nu va scrie nici un fişier. În schimb, va implementa funcția
void solve(int n, int& x1, int& y1, int& x2, int& y2);
unde este numărul cu semnificația de mai sus - dat de comisie, iar şi sunt coordonatele colţului stânga-sus al dreptunghiului iar şi sunt coordonatele colţului dreapta-jos al dreptunghiului - determinate de concurent.
Puteți apela funcția
int ask(int x1, int y1, int x2, int y2);
prin care precizaţi coordonatele colţurilor stânga-sus şi respectiv dreapta-jos ale unui dreptunghi (notat în continuare ) care întoarce o valoare egală cu numărul de celule conţinute de intersecţia celor două dreptunghiuri ( şi )
Exemplu (model de interacţiune)
Se apelează solve de către comisie cu .
Concurentul apelează ask(1, 1, 2, 2) care returnează .
Concurentul setază , , , și execuția se încheie.
Restricții și precizări
- sunt indicii coloanelor astfel încât
- sunt indicii liniilor astfel încât
- Programul dvs. nu trebuie să efectueze mai mult de de apeluri ale funcției
ask. - Trebuie să includeți fișierul
drept.h