Rectangles (1) P56635


Statement
 

pdf   zip

thehtml

En un popular gestor de finestres, s’usa la definició següent per mantenir la informació de les finestres visibles a la pantalla de l’ordinador:

struct Rectangle { int x_esq, x_dre, y_baix, y_dalt; };

Aquí, els rectangles tenen els costats paral·lels als eixos x i y, i x_esq, x_dre, y_baix i y_dalt són respectivament la mínima coordenada horitzontal, la màxima coordenada horitzontal, la mínima coordenada vertical i la màxima coordenada vertical de cada rectangle.

Feu un procediment que llegeixi un rectangle:

void llegeix(Rectangle& r);

el qual ve donat a l’entrada amb els quatre enters x_esq, x_dre, y_baix i y_dalt en aquest ordre.

Feu també una funció que indiqui la relació que tenen dos rectangles r1 i r2 donats:

int relacio(const Rectangle& r1, const Rectangle& r2);

Cal que la funció retorni 1 si r1 és interior a r2, 2 si r2 és interior a r1, 3 si cap rectangle és interior a l’altre però els rectangles intersecten, 4 si els rectangles són idèntics, i 0 altrament (si els rectangles no tenen cap punt en comú).

Suposeu que dos rectangles intersecten fins i tot si coincideixen només en un segment o només en un punt. A més, suposeu que tots els rectangles estan ben formats, és a dir, que x_esq és estrictament més petit que x_dre, i que y_baix és estrictament més petit que y_dalt.

Useu aquestes definicions i procediments per fer un programa que llegeixi una sèrie de parells de rectangles, i per a cadascun escrigui quina relació tenen.

Entrada

L’entrada consisteix en un natural n, seguit de n línies, cadascuna amb dos rectangles (vuit nombres enters).

Sortida

Per a cada parell de rectangles, cal escriure la seva relació segons es mostra en els exemples.

Public test cases
  • Input

    6
    2 3 4 6       0 5 2 8
    0 10 0 10     9 10 0 1
    0 2 0 2       1 3 1 3
    -1 1 -2 2     -1 1 -2 2
    0 1 0 2       5 7 4 7
    0 2 0 2       2 4 2 4
    

    Output

    el primer rectangle es interior al segon
    el segon rectangle es interior al primer
    els rectangles intersecten
    els rectangles son iguals
    els rectangles no intersecten
    els rectangles intersecten
    
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Other languages
    English
    Official solutions
    C++
    User solutions
    C++