• Aucun résultat trouvé

Programmation efficace – Examen de session 2, 2020-2021 A. Sangnier, I. Klimann

N/A
N/A
Protected

Academic year: 2022

Partager "Programmation efficace – Examen de session 2, 2020-2021 A. Sangnier, I. Klimann"

Copied!
4
0
0

Texte intégral

(1)

Programmation efficace – Examen de session 2, 2020-2021

A. Sangnier, I. Klimann

M. Alain De Nucl´ eos vient de retrouver la boˆıte d’un puzzle qu’il aimait beaucoup ´ etant enfant. Il n’aimait pas tant que ¸ ca le faire dans son souvenir, c’´ etait surtout l’illustration finale qui lui plaisait. Le diable s’il se souvient de ce que cela repr´ esentait d’ailleurs !

Comme le puzzle contient beaucoup de pi` eces et qu’il n’a vraiment pas le temps de le refaire (le t´ el´ etravail n’attend pas), il vous embauche pour ¸ ca. Probl` eme : par ces temps de confinement, il va falloir faire le travail ` a distance et sans le puzzle en lui-mˆ eme. Heureusement qu’Alain a pens´ e ` a s’enfermer avec du petit personnel qui va pouvoir vous envoyer un fichier d´ ecrivant l’ensemble des pi` eces.

Chaque pi` ece du puzzle peut ˆ etre vue comme un rectangle avec des encoches sur le cˆ ot´ e. Toutes les pi` eces du puzzle sont suppos´ ees avoir la mˆ eme hauteur et la mˆ eme largeur (qui donnent le nombre d’encoches sur les cˆ ot´ es correspondant). Un emplacement pour une encoche peut aussi ˆ

etre plat (par exemple pour une pi` ece du bord). Des exemples de pi` eces sont donn´ es en figure 1.

(a) pi`ece de largeur 2 et hauteur 1, description : T A C Z C G

(b) pi`ece 1×1 :T C Z G

(c) pi`ece 2 × 3 : T T C T G Z T G T A

(d) pi`ece 3 × 2 : C Z G T T G T Z Z T

Figure 1 – Des exemples de pi` eces de puzzle.

Il y a deux familles d’encoches, triangulaires et carr´ ees, et pour simplifier, nous allons les rep´ erer avec des lettres :

— les encoches triangulaires sont not´ ees T si elles ”sortent” de la pi` ece ou A si elles ”rentrent”

dans la pi` ece,

— les encoches carr´ ees sont not´ ees C si elles ”sortent” de la pi` ece ou G elles ”rentrent” dans la pi` ece,

— l’absence d’encoche est not´ ee par Z.

Ainsi pour que deux pi` eces s’emboˆıtent, il faut que les cˆ ot´ es contigus s’apparient correcte- ment : T avec A, et C avec G (et ¸ ca rappelle vaguement quelque chose ` a Alain, mais il n’arrive pas

`

a se rappeler quoi, la vieillesse sans doute), et bien sˆ ur Z avec Z.

Voici le format exact du fichier :

— sur la premi` ere ligne un entier N : le nombre de pi` eces dans la boˆıte du puzzle,

— sur la deuxi` eme ligne deux entiers L et H : les dimensions de chaque pi` ece,

1

(2)

— sur chacune des N lignes suivantes L×H caract` eres parmi A, T, C, G et Z, s´ epar´ es par un espace entre deux caract` eres et repr´ esentant les encoches de la pi` eces, dans un ordre qui correspond ` a un parcours dans le sens inverses des aiguilles d’une montre, en commen¸ cant par un cˆ ot´ e de longueur L (dans tous les exemples de l’´ enonc´ e, on a commenc´ e par le coin en bas ` a gauche, mais on pourrait commencer de fa¸ con ´ equivalente par le coin en haut

`

a droite car cela correspond ` a une rotation de la pi` ece de 180 ° ). Les pi` eces ainsi d´ ecrites sont consid´ er´ ees comme ´ etant num´ erot´ ees de 0 ` a N-1.

Exemple de description d’une boˆıte de pi` eces :

6 6 pi` eces pour le puzzle

3 2 chaque pi` ece est de largeur 3 et de hauteur 2 C Z G T T G T Z Z T description de la pi` ece 0 (fig. 1d)

Z Z Z A T A T A Z Z description de la pi` ece 1 Z Z Z Z Z Z T C A T description de la pi` ece 2 Z Z Z G G G A Z Z Z description de la pi` ece 3 T A T C C Z Z Z Z Z description de la pi` ece 4 C A C A T A T A T G description de la pi` ece 5

Votre travail est de trouver un rectangle de pi` eces qui s’emboˆıtent correctement (donc sans trou). Dans le cas de pi` eces non carr´ ees, on se contente de solutions o` u les pi` eces du puzzle sont toutes orient´ ees dans la mˆ eme direction : chaque pi` ece a donc deux orientations admissibles. Dans le cas de pi` eces carr´ ees, elle en a quatre. Ainsi dans l’exemple ci-dessus la pi` ece 1 peut ˆ etre uniquement plac´ ee dans une des deux configurations suivantes :

(orientation d’origine) et (demi-tour).

Alors que la pi` ece de la figure 1b peut ˆ etre plac´ ee dans une des quatre configurations suivantes : (orientation d’origine), ( ¼ tour), ( ½ tour) et ( ¾ tour).

Le fichier sortie que vous devez fournir d´ ecrit comment fabriquer un puzzle, en posant les pi` eces de gauche ` a droite puis de haut en bas. Il prend la forme suivante :

— sur la premi` ere ligne deux entiers : la largeur M et la hauteur I du puzzle obtenu (en nombre de pi` eces),

— sur les M×I lignes suivantes deux entiers : le num´ ero de la pi` ece ` a placer suivi de son orientation (0 : orientation d’origine ; 1 : un quart de tour dans le sens des aiguilles d’une montre ; 2 : un demi-tour ; 3 : trois quarts de tour).

Il n’est pas imp´ eratif que toutes les pi` eces du puzzle soient utilis´ ees, mais il est obligatoire que le puzzle obtenu ait une forme rectangulaire et que les pi` eces s’emboˆıtent correctement (ni trous et ni superpositions). Chaque pi` ece fournie ne peut bien entendu ˆ etre utilis´ ee qu’une seule fois.

Un exemple de puzzle obtenu pour la liste pr´ ec´ edente de pi` eces est donn´ e en figure 2. Il correspond au fichier de sortie suivant :

2

(3)

2 2 le puzzle est un rectangle de largeur 2 pi` eces et de hauteur 2 pi` eces 4 0 la pi` ece 4 est utilis´ ee dans son orientation d’origine

3 2 la pi` ece 3 est utilis´ ee en lui faisant subir un demi-tour 1 0 la pi` ece 1 est utilis´ ee dans son orientation d’origine 2 0 la pi` ece 2 est utilis´ ee dans son orientation d’origine

Figure 2 – Exemple de puzzle possible avec les pi` eces du fichier d’entr´ ee donn´ e plus haut.

Un autre exemple de puzzle obtenu pour la liste pr´ ec´ edente de pi` eces est donn´ e en figure 3.

Vous pouvez remarquer qu’il n’a pas de bords ext´ erieurs plats ; cela aura un coup (voir plus bas pour le calcul du score). Il correspond au fichier de sortie suivant :

2 2 le puzzle est un rectangle de largeur 2 pi` eces et de hauteur 2 pi` eces 4 0 la pi` ece 4 est utilis´ ee dans son orientation d’origine

3 2 la pi` ece 3 est utilis´ ee en lui faisant subir un demi-tour 5 0 la pi` ece 5 est utilis´ ee dans son orientation d’origine 2 0 la pi` ece 2 est utilis´ ee dans son orientation d’origine

Figure 3 – Autre exemple de puzzle possible avec les pi` eces du fichier d’entr´ ee donn´ e plus haut.

Le calcul de la paie (et donc du score de votre solution) est proportionnel ` a la taille du puzzle que vous fabriquez : 1 e par pi` ece, ainsi la solution de la figure 2 rapporte 4 e . Cependant, comme vous l’avez vu en figure 3, on peut fournir une solution dont les bords ext´ erieurs ne sont pas plats.

Cette solution n’est clairement pas satisfaisante. On enl` eve donc 2 euros par pi` ece ext´ erieure qui poss` ede au moins une encoche non plate sur un cˆ ot´ e ext´ erieur. Une paie ne pouant ˆ etre n´ egative, on prend n´ eanmoins le max entre 0 et le nombre obtenu par la formule pr´ ec´ edente.

Ainsi le puzzle de la figure 3 rapport 2 e :

— nombre de pi` eces : 4 ;

— nombre de pi` eces ext´ erieures avec au moins une encoche non plate sur un cˆ ot´ e ext´ erieur : 1.

3

(4)

Le puzzle de la figure 4 (qui ne correspond pas au fichier d’entr´ ee pr´ ec´ edent) rapporte 12 e :

— nombre de pi` eces : 16,

— nombre de pi` eces ext´ erieures avec au moins une encoche non plate sur un cˆ ot´ e ext´ erieur : 2.

Figure 4 – Exemple de puzzle ; score : 16 − 2 ∗ 2 = 12.

4

Références

Documents relatifs

gracia excepcional y un 'vigor expresivo - 'sin miedo a lo antipoético ~ ..que 'justi- fica el temarío de les poemas tan intencio- nados quecomponen el libro, Sobre todo, hay en

Si une des pes´ ees donne l’´ equilibre, c’est que la pi` ece fausse n’y figure pas ; on sait dans quel lot elle est, et l’autre pes´ ee indique le sens de l’´ ecart entre

– si la balance n’est pas en ´ equilibre, les 29 pi` eces les plus l´ eg` eres contiennent strictement plus de fausses pi` eces que les plus lourdes, on ne conserve que les 29 pi`

Avec des allumettes, tracez les tangentes qui touchent deux pi` eces sans couper la troisi` eme et d´ eterminent un triangle ABC ` a l’int´ erieur duquel se trouvent les trois

Notons A les pi` eces situ´ ees ` a droite et ` a gauche du vestibule, B les pi` eces situ´ ees au-dessus et au-dessous du vestibule, C les pi` eces situ´ ees aux angles. Apr` es

[r]

Exercice 39 Correction : Afin de d´ eterminer l’esp´ erance math´ ematique de la variable al´ eatoire X, on consid` ere les donn´ ees

Quel sera le nombre de pi` eces restantes s’ils d´ ecident de partager le butin entre les 7 groupes (en donnant ` a chaque groupe le mˆ eme nombre de pi` eces)?.