Manuel du juge en ligne

Le système d'entraînement automatique est un outil pour vous aider à améliorer votre niveau en programmation. Il est ouvert à tous, et bien entendu gratuit. Lisez bien ce qui suit pour bien en comprendre le principe, et en profiter un maximum.

Épreuves

Les problèmes proposés durant les diverses éditions du concours Prologin sont archivés et disponibles sur ce site. Vous pouvez ainsi vous entraîner sur les problèmes des questionnaires et demi-finales passés. Ils sont classés par année et par difficulté : depuis le niveau débutant, à des difficultés bien plus élevées.

Évaluation

L'évaluation d'un exercice, dans le cas où un source est demandé, est faite par notre serveur : le programme est compilé puis testé automatiquement. Il est exécuté une fois par test. Les erreurs possibles sont :

  • Votre programme ne compile pas ;
  • Votre programme a dépassé la limite de mémoire donnée dans le sujet ;
  • Votre programme a dépassé la limite de temps donnée dans le sujet ;
  • Votre programme donne un résultat faux pour au moins un des tests ;
  • Votre programme ne se termine pas correctement.

S'il y a une erreur de compilation, la sortie d'erreur du compilateur est affichée.

La sortie produite par votre programme doit correspondre exactement avec le formatage précisé dans chacun des énoncés. Le système de correction compare la sortie de votre programme avec une sortie de référence, caractère par caractère. Le retour à la ligne en fin de dernière ligne n'est pas obligatoire cependant.

Après exécution des tests, un récapitulatif vous est affiché, indiquant les tests réussis et les tests ratés. Pour le premier test raté uniquement, la sortie produite par votre programme est affichée, ainsi que la sortie attendue par le système de correction. L'exercice ne sera validé que lorsque tous les tests seront passés avec succès.

La correction peut prendre plusieurs minutes, donc soyez patient.

Score

Nous fournissons, pour certains langages, des codes sources se chargeant de "découper" correctement les données fournies sur l'entrée standard du programme. Il ne vous reste alors qu'à écrire le corps d'une fonction prenant ces données en paramètre.

Notez qu'il n'est absolument pas obligatoire de les utiliser, mais cela peut se révéler utile dans bien des cas.

Système de correction

Architecture matérielle

Vos programmes sont exécutés sur une machine architecturée autour d'un processeur Intel Code2Duo cadencé à 2,40 GHz, fonctionnant sous une distribution de GNU/Linux.

Pour information, voici la taille en octets des types C et C++ :

Type
Taille (octets)
char 1
short 2
int 4
long 4
float 4
double 8

L'architecture est de type little endian.

Limitations de mémoire et de temps

Chaque sujet impose des limites, autant en terme d'utilisation mémoire que de temps d'exécution. Des coefficients sont néanmoins appliqués sur certains langages plus lents à s'exécuter ou plus gourmand en mémoire. Concernant les algorithmes récursifs, notez qu'aucune limitation n'est appliquée sur la taille de la pile.

Compileurs et interpréteurs

Pour information, voici les différents compilateurs/interpréteurs utilisés, ainsi que leur version :

  • C : GCC version 4.1.2
  • C++ : G++ version 4.1.2
  • Pascal : Free Pascal version 2.2.0
  • Java : Java 2 RE Standard Edition, version 1.5.0_14
  • OCaml : The Objective Caml toplevel, version 3.09.2
  • Python : Python version 2.5
  • C# / F# : Mono version 1.2.2.1
  • PHP : PHP version 5.2.0
  • Scheme : TinyScheme version 1.37
  • ADA : GNAT version 4.1

Options de compilation

  • C : -W -Wall -O2 -std=c99 -lm
  • C++ : -W -Wall -O2 -lm
  • C# : -optimize+
  • F# : -O3

Commentaires

Mono 2.0

Pourquoi n'utilisez -vous pas une version plus récente de Mono.
La 1.2.2.1 date un peu et ca serait bien d'avoir la 1.9.1 ou la 2.0 qui ont quelques bibliothèques supplémentaire :)

Curieux que vous ne compiliez

Curieux que vous ne compiliez pas le code C/C++ avec une option d'optimisation genre -O2, Beaucoup de candidats doivent pourtant l'utiliser (on m'avait dit qu'il en était aussi ainsi pour les épreuves de france-ioi) et peuvent donc avoir des surprises en soumettant leur code. Par ailleurs, -W est obsolete je crois, c'est -Wextra maintenant.