Rectangles (1) P56635


Statement
 

pdf   zip

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 nn, seguit de nn 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++