exercice ioi programme "Casernes de pompiers"

Publié le 29 oct. 2019 il y a 3A par Anonyme - Fin › 1 nov. 2019 dans 3A
10

Sujet du devoir

Bonjour j'ai beaucoup avancer sur ioi et il me reste plus que 6 probleme pour le niveaux 1 le problème c'est que ses niveaux la je suis bloque pouvez vous m'aider a les faire car je dois les rendre pour la rentrée svp ?

La ville comprend de nombreuses casernes de pompiers et chacune a sa propre zone d'intervention qui lui est réservée. Cependant en regardant ces zones il vous semble qu'elles ne sont pas très bien choisies car parfois elles se recoupent alors que certains endroits de la ville sont en dehors de toutes les zones et donc ne sont pas protégées par les pompiers. Vous décidez d'aider le maire à mieux organiser l'action des pompiers.

Ce que doit faire votre programme :

Votre programme doit lire la description de plusieurs paires de zones rectangulaires, et pour chacune, déterminer si les deux rectangles s'intersectent.

Vous devez lire un premier entier, le nombre de paires de zones que votre programme devra tester. Ensuite, pour chaque paire possible, deux zones rectangulaires et parallèles aux axes vous sont données l'une après l'autre. Chaque zone est décrite par 4 entiers : son abscisse minimale et maximale puis son ordonnée minimale et maximale.

Sur cet exemple, la zone du bas est donc décrite par les 4 entiers (1, 6, 1, 5) et l'autre par (4, 9, 3, 8) :

Pour chaque paire de zones, votre programme doit écrire "OUI" si les zones s'intersectent et "NON" sinon. Si elles ne font que se toucher sur les bords il doit écrire "NON".

Exemple

entrée :

1
1
6
1
5
4
9
3
8

sortie :

OUI

 

 

 

Où j'en suis dans mon devoir

ce que j'ai fait :

 

class rect:

    int x1, x2, y1, y2;
public:
    rect(int a, int b, int c, int d) {
        x1 = a;
        x2 = b;
        y1 = c;
        y2 = d;
   
    int get_x1()
        return x1
   
    int get_x2()
        return x2
   
    int get_y1()
        return y1
   
    int get_y2()
        return y2
 
int main()
    int nbr_paire,a,b,c,d;
    cin >> nbr_paire;
    for (int i = 1;i <= nbr_paire; i++) {
        cin >> a >> b >> c >> d;
        rect r1(a, b, c, d);
        cin >> a >> b >> c >> d;
        rect r2(a, b, c, d);
        if ( (r2.get_x1() >= r1.get_x1()) && (r2.get_x1() <= r1.get_x2()) && (r2.get_y1() >= r1.get_y1()) && (r2.get_y1() <= r1.get_y2()) ) {
            cout << "OUI"<< endl;
        el
            cout << "NON" << endl;




0 commentaire pour ce devoir



Ils ont besoin d'aide !

Il faut être inscrit pour aider

Crée un compte gratuit pour aider

Je m'inscrisOU

J'ai déjà un compte

Je me connecte