Premier Tour 2013

Resultats du Premier Tour

Les participants suivants qualifient pour le deuxième tour.

Rang Participant Points (max: 60)
1. Timo Bräm 47.5
2. Johannes Kapfhammer 44.5
3. Florian Schroeder 42.5
3. Peter Müller 42.5
5. Timon Stampfli 42
6. Benjamin Schmid 41
7. Fabian Lyck 40.5
8. Cédric Neukom 38.5
9. Lukas Roth 33.5
10. Pascal Sommer 31.5
10. Sander Staal 31.5
12. Stephan Leuch 30.5
13. Cedric Münger 29
13. Lorenz Brun 29
13. Thomas Käser 29
16. Viviane Kehl 24
17. Raphael Appenzeller 20
18. Jean-Marie Bise 19
19. Filip Vucelic 17.5
20. Ruben Jungius 14
21. Andrina Denzler 13
21. Florian Wernli 13
23. Cyrill Künzi 12
23. Luc Haller 12
25. Elias Boschung 11.5
26. Michael Aerni 10
27. Marcel Würsten
28. Philipp Muggli
29. Patrick Eigensatz

Pour le premier tour de qualification, nous avons préparés 6 tâches. Il y a deux sortes de tâches. Trois des tâches sont des tâches pratiques : tu dois écrire un programme complet et soumettre le code source correspondant. Pour deux des tâches, l’intérêt porte plutôt sur les aspects mathématiques, qui sont analysés logiquement dans le but de développer une solution détaillée. La dernière tâche est une tâche créative, pour laquelle ton programme va entrer en compétition interactivement contre les programmes des autres participants. Cette tâche créative ne possède pas de solution optimale, et même une solution simple marque des points.

Les tâches sont disponibles ici sur le site.

Tâche Type
Horloge pratique
Deux Tables pratique
Doigté pratique
Analyse de Code théorique
Bancomats théorique
Qui Veut Devenir Milliardaire? créative

Soumission et attribution des points

Idéalement, tu devrais soumettre ton programme directement via le formulaire (lien en bas de chaque page de description des tâches). Soumets directement le code source ou, s’il s’agit de multiple fichiers, en tant qu’archive.

Important : Vérifie que ton rôle est défini comme « participant » dans ton profil, sinon tu ne pourras pas soumettre tes solutions.

Si tu n’arrives pas à soumettre tes solutions, tu peux aussi les envoyer par email à round1@soi.ch (avec ton nom complet et nom d’utilisateur). Important : Dans ce cas, nous te confirmerons tes soumissions. Si tu ne reçois pas de confirmation, essaie de renvoyer tes solutions.

Le nombre maximal de points est le même pour chaque tâche.

Tâches pratiques

Pour ces tâches, tu dois soumettre ton code sources.

N’envoie pas de fichiers binaires, mais seulement des fichiers de code source ! Nous ne considérerons pas les fichiers binaires. Si possible, essaie d’écrire ta solution dans juste un fichier pour rendre l’évaluation plus facile. Ton fichier source devra contenir un en-tête avec les informations suivantes : tâche résolue, langage de programmation, nom d’utilisateur.

Exemple en C++ :

/*
  Task: sample
  Lang: C++
  User: chuck
*/
Instructions :
  • Dans ta sortie, ne renvoie rien de plus que ce qui est demandé dans la description de la tâche. Si tu imprimes quelque chose comme « SVP entrer W et H : », tu perdras des points !
  • À la place d’entrer tout l’input à la main, tu peux lire les données d’un fichier d’entrée. Dans un terminal, écris monprogramme < monfichierdentree.txt . Ton programme se comportera comme su tu avais entré toutes les valeurs du fichier monfichierdentree.txt à la main. La redirection de fichiers avec «<» marche sur tous les systèmes de type Linux, mais également sur Mac et sur Windows. Sur Windows, le terminal est appelé «Command Prompt» ou «Invite de commandes».
  • Utilise long long int correctement si nécessaire:
      int w,h;
      scanf("%d %d", &w, &h);
      long long int area = w * (long long int)h;
      printf("%lld", area);
  • Teste ton programme avant de le soumettre (utilise aussi des cas tests avec de grandes valeurs ; crée tes cas tests toi-même).
  • Si tu as des questions ou ne comprends pas les explications ci-dessus, n’hésite pas à poser des questions dans le forum ! Si quelque chose n’est pas clair pour toi, tu n’es probablement pas le seul !
Attribution des points

Un programme qui résout correctement tous nos cas tests en un temps raisonnable (quelques secondes) recevra le score maximal. Remarque que ces cas tests ne sont pas publics et tu ne les connaîtras pas à l’avance. Pour la contrainte au niveau du temps, nous regarderons le temps d’exécution asymptotique de ton programme. Ceci signifie généralement que tu es censé améliorer la vitesse d’exécution pour passer de mois à secondes, mais pas de 4s à 3s. De plus, tes programmes peuvent utiliser de la mémoire jusqu’à une limite « raisonnable » (environ 100MB).

  • Si ton code est rapide et correct, tu obtiendras le maximum de points (pas de points supplémentaires pour la documentation)
  • Si ton programme est correct mais lent, tu recevras des points partiels suivant sa rapidité (jette un coup d’œil aux remarques sur les points partiels dans les tâches-mêmes).
  • Si ton programme est rapide mais (partiellement) incorrect, tu n’obtiendras (presque) pas de points.

Tâches théoriques

Nous avons rédigé un petit « HowTo » au cas où tu te demandes comment une solution parfaite d’une tâche théorique doit être rédigée. Soumets aussi ta solution si elle n’est pas complètement conforme à ce modèle, tu pourras tout de même marquer de nombreux points

Tu peux envoyer ta solution en format texte, PDF, Postscript, document OpenOffice, document Word ou comme image scannée.

Attribution des points

Ta solution sera évaluée pour sa correctitude et sa complétude. Pour marquer un score complet, nous demandons un code source (qui peut aussi être du pseudocode) et une description de la solution optimale, une « preuve » de la correctitude ainsi qu’une estimation de la complexité en temps et en mémoire. Plus d’informations sur ces concepts sont disponibles dans le fichier HowTo ci-dessus.

Tâche créative

Tu dois soumettre le code source.

Attribution des points

Les points seront attribués lors du tournoi de la tâche créative lors du SOI day, selon le classement du tournoi. (Le SOI day aura lieu le 12 janvier 2013).