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.

Problèmes

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 épreuves régionales 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 :

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.

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

Le système d'entraînement note vos soumissions ! En effet, chaque problème résolu rapporte un certain nombre de points, dépendant du nombre de soumissions que vous avez fait avant de le résoudre avec succès. Pensez donc à bien tester votre programme vous-même, avant de le soumettre.

Codes à compléter

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

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. Aucune limitation particulière n'est appliquée sur la taille de la pile.

Architecture matérielle

Vos programmes sont exécutés dans une machine virtuelle architecturée autour d'un processeur Intel(R) Xeon(R) CPU E3-1241 v3 cadencé à 3.50 Ghz et une architecture x86_64. L'architecture est de type Little Endian. La machine virtuelle a 1 vCPU dédiés et 3 Gio de mémoire vive dédiés.

Compilateurs et interpréteurs

Langage Binaire Version Options
Ada gnatmake 8.2.1 -f
C gcc 8.2.1 -std=c11 -Wall -Wextra -O2 -lm
C# mcs 5.16.0.0 -optimize+
mono 5.16.0
C++ g++ 8.2.1 -std=c++17 -Wall -Wextra -O2
D dmd 2.082.1
Go go 1.11.1 build -buildmode=exe
Haskell ghc 8.6.1 -dynamic -O2
Java java 1.8.0
javac 1.8.0 -encoding UTF-8
javap 1.8.0
Javascript node 11.1.0
Lua lua 5.3.5
OCaml ocamlopt 4.07.0 -w A
Pascal fpc 3.0.4 -XD -Fainitc
Perl perl 5.28.0
PHP php 7.2.11
Python python3 3.7.1 -S
Ruby ruby 2.5.3
Rust rustc 1.30.0 -W warnings -O
Scheme gsi 4.9.0