Rectangles (1)

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.

Informació del problema

Autoria: Salvador Roura

Generació: 2026-01-25T11:23:31.209Z

© Jutge.org, 2006–2026.
https://jutge.org