drept

Time limit: 0.02s Memory limit: 64MB Input: Output:

Să considerăm o reţea de n×nn \times n celule, în care colţul din stânga-sus are coordonatele carteziene (1,1)(1, 1). În interiorul acestei reţele se află un dreptunghi (pe care îl vom nota în continuare cu D1D_1) cu laturi paralele cu axele de coordonate, compus din celule ale reţelei.

Cerință

Determinaţi amplasarea dreptunghiului D1D_1.

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 nn este numărul cu semnificația de mai sus - dat de comisie, iar x1x1 şi y1y1 sunt coordonatele colţului stânga-sus al dreptunghiului D1D_1 iar x2x2 şi y2y2 sunt coordonatele colţului dreapta-jos al dreptunghiului D1D_1 - 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 D2D_2) care întoarce o valoare egală cu numărul de celule conţinute de intersecţia celor două dreptunghiuri (D1D_1 şi D2D_2)

Exemplu (model de interacţiune)

Se apelează solve de către comisie cu n=3n=3.
Concurentul apelează ask(1, 1, 2, 2) care returnează 44.
Concurentul setază x1=1x1=1, y1=1y1=1, x2=2x2=2, y2=2y2=2 și execuția se încheie.

Restricții și precizări

  • n31 000n \leq 31 \ 000
  • x1,x2x1, x2 sunt indicii coloanelor astfel încât 1x1x2n1 \leq x1 \leq x2 \leq n
  • y1,y2y1, y2 sunt indicii liniilor astfel încât 1y1y2n1 \leq y1 \leq y2 \leq n
  • Programul dvs. nu trebuie să efectueze mai mult de 3131 de apeluri ale funcției ask.
  • Trebuie să includeți fișierul drept.h

Log in or sign up to be able to send submissions!