Praktische Richtung

Resultate 1P

Die Resultate des praktischen Teils der ersten Runde:

Rank Participant Points (maximum: 50)
1. Beat Küng 49
1. Simon Laube 49
3. Daniel Graf 48
4. Adrian Roos and Isaac Deutsch and Lorenz Hulfeld 47
4. Dominik Böhi 47
6. Timon Gehr 45
7. Hans Sjökvist 37
8. Marc Schmid 35.5
9. Florian Scheidegger 35
9. Christian Zommerfelds 35
11. Yassin Nasir Hassan
12. Jan Hermann
12. Titus Cieslewski
14. André Ryser
15. Paul Frischknecht
16. Livio Sgier
17. Alexander Kayed
18. Kieran Nirkko and Amos Gfeller
18. Josef Ziegler
18. Johannes Wüthrich
21. Kirusanth Poopalasingam
22. Christian Mäder
23. Peregrine Park
23. Carlo Beltrame
25. Jean Gauthier
26. Martin Jehli
27. Dominik Wild
28. Andreas Wildi
29. Muriel Pauli and Fiona Pacifico and Solange Emmenegger

Praktische Runde

In der praktischen Runde musst du zu jeder Aufgabe ein komplettes Programm schreiben, das deinen Lösungsweg implementiert, und anschliessend den Quelltext einschicken. Dazu haben wir die folgenden fünf kniffligen Aufgaben entworfen:

  1. Telefonnummern
  2. Käse auf Zahnrädern
  3. Darts II
  4. Kleinste Teilzahl
  5. Mousipedia

Deine Lösungen kannst du Ende November einschicken. Du kannst auch in einer Gruppe von bis zu drei Teilnehmern zusammenarbeiten.

Bedingungen

Als Einsendung sollst du ein zip oder tar.gz file schicken, das einen Ordner mit deinem/euren Vor- und Nachnamen enthält. Für jede gelöste Aufgabe erstellst du darin einen Ordner mit folgendem Inhalt:

  • Keine Binärdateien!
  • Quelltext deines Programms
  • Erklärung wie dein Programm zu Kompilieren / auszuführen ist. (In einer .txt oder Makefile Datei)
  • Deine Resultate für die Beispieleingaben (sample.insample.out)
  • Eine Datei mit dem Namen dokumentation (freiwillig), empfohlene Formate: Plain Text, PDF oder Latex.

Versuche dich nach Möglichkeit auf nur eine Quelltextdatei zu beschränken um Übersicht und Kompilieren nicht zusätzlich zu komplizieren. Deine Quelltextdatei sollte einige Kopfzeilen enthalten mit den folgenden Informationen: Gelöste Aufgabe, Programmiersprache, Username / Teammitglieder:

/*
  Task: sample
  Lang: C++
  Users: soi, chuck
*/

Bewertung

Ein Programm, das alle Testfälle innerhalb der Zeitlimite (einige Sekunden) löst, erhält die maximale Punktzahl. Bei der Zeitbeschränkung geht es um die Asymptotische Laufzeitkomplexität deines Programms. Im Allgemeinen heisst das, du solltest die Laufzeit von Monaten auf Sekunden optimieren, nicht aber von 5s auf 3s. Desweiteren bist du frei, wie viel Speicher du beanspruchst, solange es in einem vertretbaren Rahmen bleibt (so ca. 100MB).

  • Falls dein Programm schnell und korrekt ist, bekommst du die maximale Punktzahl (und kannst keine Zusatzpunkte verdienen mit der Dokumentation)
  • Für ein Korrektes aber langsames Programm verteilen wir Teilpunkte (je nachdem wie Langsam dein Programm ist)
  • Ein Schnelles aber (teilweise) falsches Programm wird keine Punkte erzielen.

Documentation

Wir empfehlen dir auch, deine Lösungsidee in einer separaten Datei in Worten zu beschreiben. Falls in deinem Programm Fehler enthalten sind, verlierst du alle Punkte, die dieser Fehler verursacht. Wenn aus deiner Dokumentation aber ersichtlich ist, dass die eigentliche Lösungsidee richtig ist und es sich nur um einen Flüchtigkeitsfehler handelt, so werden wir einige Teilpunkte vergeben (basierend auf Qualität und Inhalt deiner Dokumentation und Quelltextdatei).

Diese Regeln sollen einen Schönheitswettbewerb vermeiden. (Es geht darum, was zu lernen beim Dokumentieren deiner Programme.)