-
Vous êtes à ma place, et devez donner un devoir à la maison à vos étudiants.
Problème: ils copient entre eux.
Vous êtes prêts à préparer plusieurs versions de votre devoir: 2 étudiants ayant 2 versions différentes ne pourront pas copier entre eux.
Vous connaissez également le réseau social des étudiants: 2 étudiants essaieront de copier entre eux seulement s'ils sont amis dans ce réseau (directement reliés).
Comment faire pour donner une version du devoir à chacun, en minimisant le nombre total de versions, et en ne donnant jamais la même version à 2 amis?
Implémentez dans un fichier color.cc la fonction Color(), décrite dans le fichier color.h:
#ifndef __COLOR_H
#define __COLOR_H
#include <vector>
#include "ugraph.h" // Vous l'avez: il était dans test.tar.gz.
using namespace std;
// Étant donné un graph non dirigé, renvoie un coloriage utilisant
// aussi peu de couleurs que possible.
// Entrée: le graphe non dirigé.
// Valeur de retour: le nombre de couleur C de votre coloriage.
// Sortie: "color" doit contenir autant d'élément que le nombre de noeuds
int Color(const UndirectedGraph& graph,
vector<int>* color);
#endif
Test: make color
RENDU: color.cc
|
|
 |