Skip to content

FAQ (Frequently Asked Questions)

Oussama Ben Khiroun edited this page Nov 27, 2017 · 5 revisions

I. Questions de configuration

Q1) Quel logiciel à installer ?

Un simple IDE qui supporte le langage C (environnement de développement intégré; ex. Netbeans, Codeblocks, DevC++) ou un simple éditeur de texte avec compilation en ligne de commande (gcc -o nomProgramme nomCode.c)

Q2) De quoi j'ai besoin pour configurer le client PC^2?

Avoir Java ☕ installé sur votre machine :

  • tester sur terminal avec la commande java -version; la version de java doit être affichée.
  • En cas de problème, télécharger Java et suivre les instructions d'installation selon votre système d'exploitation.

Si Netbeans est utilisé en tant que IDE, Java devrait normalement fonctionner.

Si java n'est pas reconnu en tant que commande, vérifier que Java est ajouté aux variables d'environnement PATH sur Windows (voir ce lien).

Q3) Comment lancer PC^2?

Une fois le dossier PC^2 est décompressé sur votre disque dur, aller au dossier PC^2 en ligne de commande.

Sous Windows

Exemple : supposons avoir l'arborescence suivante:

D:\nom_dossier\
   |_ bin\
   |_ . . .
   |_ pc2v9.ini
  1. Lancer l'invite de commandes ( touche Windows + r puis entrer cmd + Entree )
  2. Une fois l'invite de commandes est lancé, accéder au dossier
    • D:
    • cd nom_dossier
  3. Lancer le programme pc2team.bat depuis le dossier PC^2 (sans accéder au dossier bin) en tapant : .\bin\pc2team.bat

Sous Linux

Exemple : supposons avoir l'arborescence suivante:

~/nom_dossier/
   |_ bin/
   |_ . . .
   |_ pc2v9.ini
  1. Lancer l'invite de commandes (ex. terminal sous Ubuntu/Gnome, konsole sous OpenSuse/KDE).
  2. Une fois l'invite de commandes est lancé, accéder au dossier avec la commande cd
  3. Lancer le programme pc2team depuis le dossier PC^2 (sans accéder au dossier bin) en tapant : ./bin/pc2team

II. Durant la session

Q4) Quels noms choisir pour mes fichiers?

Le nom du fichier source n'est pas important (vous pouvez l'appeler main.c, A.c, etc.). Celui du fichier input par contre doit être respecté selon la spécification de l'énoncé (généralement un fichier .txt qui prend le nom du problème; ex: A.txt).

Q5) Quels sont les fichiers à envoyer sur le serveur?

Seul le fichier source est demandé lors de l'envoi.

Q6) Dois-je envoyer plusieurs soumissions (run) pour le même problème?

Impérativement NON. Il ne s'agit pas d'un tirage au sort pour augmenter les chances de gagner au loto 🎲.

Une fois une soumission (ou run) est envoyée, il faut attendre la réponse définitive des juges.

🚫 L'envoi de plusieurs runs par problème ralentit le processus de jugement et encombre la file d'attente. Ne refaire l'envoi que s'il y a eu une mise à jour sur le code source.

Q7) Puis-je recevoir une réponse "Compilation Error" du serveur même si mon code compile sur ma machine?

OUI dans quelques cas, si les bonnes pratiques du langage ne sont pas respectées.

Exemple : en langage C (norme ANSI-C dite aussi C-89), il est interdit de déclarer le type du compteur dans la boucle for. Ceci est accepté dans le langage C++ (voire la norme C-99) et peut être compilé sur votre machine :

for(int i; i<10; i++){ //interdit en norme ANSI-C

Le serveur PC^2 compile avec la norme ANSI-C sans ajout d'options avec la commande gcc.

⚠️ Une liste (non exhaustive) des erreurs les plus communes peut être consultée dans ce lien.

Q8) Puis-je recevoir une réponse "Wrong Answer" automatique du serveur et mon run est correcte?

OUI dans quelques cas. Le serveur envoie une réponse automatique (marqué comme Prelimenary) en examinant les différences entre votre output et le résultat attendu tel que configuré. Ainsi, un espace non visible en fin de ligne ou un retour à la ligne en extra dans la fin du résultat rend les deux outputs non identiques.

Q9) Puis-je avoir une réponse "Wrong Answer" définitive des juges même si mon code fonctionne sur les cas de test de l'énoncé?

OUI, éventuellement si d'autres cas de test ne sont pas pris en compte. Le serveur est toujours configuré avec un jeu de test (input/output) différent de celui qui est dans l'énoncé des problèmes (autre nombre de test cases, autres exemples de données, test des limites des contraintes, etc.).

Q10) Dois-je proposer une solution optimale?

Oui (pour être un bon futur ingénieur 🥇) mais pas nécessairement si votre code peut s'exécuter en moins de 10s (c'est généralement le cas sur un jeu de données limité avec des contraintes qui ne sont pas grandes).

Dans le cas contraire, une erreur de type "Time Limit Exceeded" 🕙 sera envoyée.

Q11) Comment poser des questions?

Utiliser l'envoi de clarification (menu: "Request Clarification" 🆘) sur le programme PC^2.

Q12) Je n'arrive pas à comprendre tous les termes en anglais, comment faire?

Un dictionnaire (en format papier 📄) peut être apporté avec vous. Sinon, essayer d'ignorer les détails de l'histoire racontée dans le début de l'énoncé. L'essentiel peut être compris en parcourant l'énoncé du problème de façon globale.

Clone this wiki locally