A.2 Planning de diners
Chaque soir de la semaine, le professeur Granteaut quitte
l'université pour aller déjeuner en ville. Il est confronté au
problème de choisir un restaurant. Pour un jour donné, le choix
dépend de son appétence pour la cuisine des différents
restaurant, de leurs distance de l'université et du nombre de jours
écoulé depuis sa dernière visite à ce restaurant. Dans ce
problème, on cherche à calculer une suite des meilleurs restaurant
suivant ces critères sur une période de vingt jours.
Format des entrées :
les entrées forment un fichier constitué d'un nombre pair de lignes. Chaques paires constituent des informations concernant un restaurant.
La première ligne de chaque paire contient le nom du restaurant et on suppose que ce nom ne contient pas plus de 100 caractères.
La seconde ligne de chaque paire contient deux entiers a et b
(représentés par deux chaînes de caractères séparées
par un espace). L'entier a est compris entre 0 et 100 et
représente l'appétence du professeur Granteaut pour ce restaurant.
Le second entier b est positif et représente la distance entre le
restaurant et l'université.
Format des sorties :
pour un jour donné, l'attrait d'un restaurant est calculé par la formule :
max(0,a-b2+min(t,10)2),
où a et b ont été définis dans la description du format
des entrées et où t représente le nombre de jours depuis
lequel le professeur n'a pas mangé dans ce restaurant (on suppose que t est l'infini si le restaurant n'a jamais été visité).
Une liste des jours et des restaurants les plus intéressant pour ces
jours sur une période de 20 jours doit être stockée dans un
fichier de sortie. Si deux restaurants ont le même attrait, on doit choisir celui qui a été visité le moins récemment. Si aucun n'a été visité, on choisit par ordre alphabétique.
Exemple de fichier d'entrées :
Chez Wendy
90 3
Chinois
95 3
Les delices de Deli
90 2
Wienerschnitzel
70 6
Del Taco
50 5
KFC
55 5
Carl's Jr.
20 1
La tomate rouge
75 2
Le restaurant du metro
30 2
Exemples de fichier de sortie :
Jour Restaurant
1 Chinois
2 Les delices de Deli
3 Chez Wendy
4 La tomate rouge
5 Wienerschnitzel
6 KFC
7 Le restaurant du metro
8 Chinois
9 Les delices de Deli
10 Chez Wendy
11 Del Taco
12 La tomate rouge
13 Carl's Jr.
14 Chinois
15 Wienerschnitzel
16 Les delices de Deli
17 KFC
18 Chez Wendy
19 Le restaurant du metro
20 La tomate rouge
Écrivez un programme en C qui réponde à toutes les contraintes
ci-dessus.
Pour tout commentaire : Alexandre Sedoglavic.