1. Quelles-sont les fichiers à fournir au jury ?
Seuls les fichiers suivants devront être fournis :
• Le programme source, contenu dans un seul fichier (un seul et unique fichier source ce qui signifie pas de ZIP ou autres pour le fichier source)
• Un script de compilation (makefile, .bat, script shell…) le plus simple possible, à l’exclusion de tout autre fichier de compilation (librairies, fichiers projet, etc)
• Les fichiers d’entrée et de sortie contenant les données de test (le format sera indiqué dans l’énoncé).
Ces trois éléments devront être regroupés dans un dossier ZIP et envoyés à l'adresse indiquée dans l'énoncé.
2. Quels sont les bibliothèques autorisées ?
Les bibliothèques standard des langages (stdlib, STL, java.*, etc), ainsi que toutes les bibliothèques que l’on peut obtenir gratuitement (même si elles ne vous seront vraisemblablement d’aucune aide). Tout ce dont vous aurez besoin est présent dans la librairie standard du langage.
3. Quels sont les machines de tests ?
Un PC relativement récent x64 avec un ou deux cœurs et 4 à 8 GO de RAM (le nombre de cœurs n’a aucune importance et ne doit pas entrer en ligne de compte pour les choix algorithmiques).
4. Quels sont les systèmes d’exploitation qui peuvent être utilisés ?
Tu peux utiliser Windows ou Linux. Mac OSX est également autorisé.
5. Quels sont les compilateurs qui peuvent être utilisés ?
Tu peux utiliser Visual Studio (versions gratuites téléchargeables ici : http://www.microsoft.com/express/ ou tout autre compilateur disponible gratuitement sur internet à l’exclusion des trucs exotiques utilisés par 3 personnes en Antarctique ;-)
6. Est-ce que ça vaut le coup de sacrifier 2 heures (et donc 2 points) pour gagner 3% en vitesse ou pour nettoyer son code ?
Globalement, si tu peux faire une amélioration significative de la performance, ça vaut le coup de passer un peu plus de temps, si c’est du fignolage, ça ne vaut pas le coup !
7. Si on programme en Java, on se fait tuer par ceux qui codent en C ? Ou bien, l’échelle est différente selon le langage ?
Chaque langage sera évalué indépendamment.
8. L’utilisation d’options de compilation intégrées aux compilateurs qui optimisent le programme (alignement, déroulage, etc...) ?
Non, aucune option de compilation ne rentrera en ligne de compte : le programme sera jugé sur sa qualité intrinsèque.
9. Sera-t-il possible d'écrire des programmes parallélisés ?
Oui, le multithreading est autorisé.
10. Est-il possible de fournir un executable ?
Non, seule la source devra être fournie.
11. J’ai déjà soumis ma solution, puis-je soumettre une nouvelle version ?
Non. Nous n’acceptons qu’une seule réponse par participant. C’est la première reçue qui sera prise en compte.
12. Le script de compilation peut-il être un fichier ant (build.xml) ?
Les fichiers de type maven ou ant ne sont pas autorisés, il nous faut le script le plus simple possible et ne doit donc pas s’appuyer sur des outils externes.



