1. Runde
- 1. September bis 18. November 2024
- Aufgaben der 1. Runde
- Infos zur 1. Runde (Beispieleingaben, Links und Hinweise)
2. Runde
- Anfang 2025 bis 28. April 2025
- Aufgaben der 2. Runde
- Infos zur 2. Runde (Beispieleingaben, Links und Hinweise)
- Login
Endrunde
- 16. bis 19. September 2025
- Mehr Infos folgen
Die 2. Runde des Bundeswettbewerbs hat begonnen. Einsendeschluss ist der 28. April 2025.
Der Wettbewerb besteht aus drei Runden und erstreckt sich über rund ein Jahr.
1. Runde (1. September 2024 bis 18. November 2024)
2. Runde (1. Januar 2025 bis 28. April 2025)
Preise für Schulen
Für eine substanzielle Beteiligung am Bundeswettbewerb Informatik werden Schulpreise vergeben: An mindestens drei vollwertigen Einsendungen (also mit je mindestens drei bearbeiteten Aufgaben) zur 1. Runde müssen mindestens zehn Schülerinnen und Schüler einer Schule, darunter bei gemischten Schulen mindestens zwei Jungen und mindestens zwei Mädchen, beteiligt sein.
Wichtig: Mindestens eine der gewerteten Einsendungen muss mit einem ersten oder zweiten Preis ausgezeichnet werden.
Schulen, die diese Bedingungen erfüllen, werden als "BwInf-Schule 2024/2025" ausgezeichnet: sie erhalten ein Zertifikat, ein Label zur Nutzung auf der Schul-Website und einen Gutschein im Wert von 300 Euro zur Verwendung für den Informatikunterricht.
Material zur 1. Runde
Fragen zu den Aufgaben werden im FAQ zur 1. Runde beantwortet, ein wiederholter Blick dorthin lohnt sich also. Auch auf dem BWINF-Community Discord Server beantworten wir gerne eure Fragen: Server beitreten. Wertvolle Anregungen geben aber auch Tipps und Beispiellösungen der Vorjahre.
Wichtig für die Einsendung sind zudem die Beschreibungen von Inhalt und Struktur der einzureichenden ZIP-Archivdatei mit der Aufgabenlösung.
Vorlagen
Hier sowie unter https://git.bwinf.de/bwinf/vorlagen.git haben wir Vorlagen für die Dokumentation zur Verfügung gestellt.
Hier steht das Material für die 1. Runde 43. Bundeswettbewerb und 3. Runde Jugendwettbewerb 2024 zum Download bereit. Das Material steht zusammen mit den Aufgaben auch in einem zip-Archiv zur Verfügung:
Git Repository
Unter https://git.bwinf.de könnt ihr euch mit eurem BWINF-Account eigene Git-Repositories anlegen.
WICHTIG: Es sei nachdrücklich darauf hingewiesen, dass vor Einsendeschluss keine Lösungsideen oder Lösungen mit Programmen veröffentlicht werden dürfen. Stellt daher bitte sicher, dass ein eigenes Repository für den Wettbewerb nicht öffentlich einsehbar ist (Einstellung “private”).
Material zu den Aufgaben
Junioraufgabe 1: Quadratisch, praktisch, grün
Zu dieser Aufgabe gibt es 6 Beispieleingaben:
Jede Datei beschreibt eine Planungsaufgabe und ist so aufgebaut:
- 1. Zeile: Anzahl der Interessenten.
- 2. Zeile: Höhe des Grundstücks in Metern.
- 3. Zeile: Breite des Grundstücks in Metern.
Die Datei garten0.txt entspricht dem Beispiel aus der Aufgabenstellung.
Hier ist eine Beispieleingabe:
35
10
20
In diesem Beispiel muss das 10m x 20m große Grundstück in mindestens 35, aber höchstes 10% mehr (also höchstens 38) rechteckige Kleingärten aufgeteilt werden.
Eine Aufteilung in rechteckige, möglichst quadratische Kleingärten, mit Hilfe eines gleichmäßigen Rasters, genügt - so wie bei den Beispielen in der Aufgabenstellung.
Zusätzlich haben wir für euch eine Blockly-Umgebung, mit der ihr diese Aufgabe bearbeiten könnt.
Einlesedateien für die Arbeit mit Java: J1_EinlesenJava.
Junioraufgabe 2: Texthopsen
Zu dieser Aufgabe gibt es 5 Beispieleingaben:
- hopsen1.txt
Quelle: frei nach Äsop - hopsen2.txt
Quelle: frei nach Joachim Ringelnatz - hopsen3.txt
Quelle: frei nach Wikipedia - hopsen4.txt
Quelle: ChatGPT - hopsen5.txt
Quelle: frei nach den Gebrüdern Grimm
Jede Datei enthält einen Text, mit dem Bela und Amira Texthopsen spielen.
Zeichen, die nicht in der Tabelle stehen, werden übersprungen. Das gilt auch, wenn sie am Anfang des Textes stehen.
Zusätzlich haben wir für euch eine Blockly-Umgebung, mit der ihr diese Aufgabe bearbeiten könnt.
Einlesedateien für die Arbeit mit Java: J2_EinlesenJava.
Aufgabe 1: Hopsitexte
Zu dieser Aufgabe sind keine Beispieleingaben vorhanden.
Wenn du mit Java arbeitest, kannst du die Einlesedateien der Junioraufgabe 2 nutzen.
Aufgabe 2: Schwierigkeiten
Zu dieser Aufgabe gibt es 6 Beispieleingaben:
- schwierigkeiten0.txt
- schwierigkeiten1.txt
- schwierigkeiten2.txt
- schwierigkeiten3.txt
- schwierigkeiten4.txt
- schwierigkeiten5.txt
Jede Datei ist so aufgebaut:
- 1. Zeile: 3 ganze positive Zahlen n, m und k.
- n : Anzahl der Klausuren.
- m : Gesamtanzahl an Aufgaben.
- k : Anzahl an Aufgaben für welche eine gute Anordnung gefunden werden soll.
- Folgende n Zeilen: Abstufungen der alten Klausuren. Jede Zeile beschreibt eine Klausur und hat die Form a1 < a2 < ..., wobei jedes ai eine Aufgabe beschreibt. Eine Klausur hat mindestens 2 und maximal m Aufgaben.
- Die Aufgaben werden durch die ersten m Buchstaben des Alphabets von A, B, ... bezeichnet.
- Die letzte Zeile enthält die k Aufgaben, für die eine gute Anordnung gefunden werden soll.
Die Datei schwierigkeiten0.txt entspricht dem Beispiel aus der Aufgabenstellung.
Hier eine Bespieleingabe:
2 5 3
B < A < D < E
C < D < E
A E C
In diesem Beispiel gibt es zwei alte Klausuren mit fünf verschiedenen Aufgaben: A, B, C, D und E. Es soll für drei der Aufgaben eine neue Anordnung gefunden werden. In der 2. Zeile steht die Schwierigkeitsabstufung der ersten Altklausur. B ist leichter als A ist leichter als D ist leichter als E. In der 3. Zeile die Abstufung der 2. Altklausur. Hier ist C leichter als D und D leichter als E. Die letzte Zeile gibt an, dass für die Aufgaben A, E und C eine neue Anordnung gefunden werden soll.
Für diese Aufgabe gibt es keine gestellten Einlesedateien für die Arbeit mit Java, denn hier ist das Einlesen Teil der Aufgabe und ändert das weitere Vorgehen. Du kannst natürlich die Einlesedateien anderer Aufgaben verwenden und entsprechend abwandeln.
Aufgabe 3: Wandertag
Zu dieser Aufgabe gibt es 7 Beispieleingaben:
Jede Datei enthält Streckenwünsche und ist so aufgebaut:
- 1. Zeile: Anzahl n der Personen mit Streckenwünschen.
- In den folgenden n Zeilen ist jeweils die kürzeste und längste gewünschte Strecke aus Sicht einer Person angegeben (in Metern). Die angegebenen minimalen und maximalen Streckenlängen sind inklusive, also gilt [x1, x2].
Hier ist eine Beispieleingabe:
3
500 1000
100 200
100 600
In diesem Beispiel gibt es insgesamt drei Streckenwünsche. Person 1 möchte gern mindestens 500m und maximal 1000m laufen. Sollte die angebotene Strecke genau 500m oder 1000m betragen, würde sie auch mitkommen. Analog wünscht sich Person 2 eine Strecke zwischen 100m und 200m und Person 3 zwischen 100m und 600m.
Für die Dateien wandern6.txt und wandern7.txt benötigt dein Programm eventuell mehr Zeit als für die anderen Eingaben. Versuche, diese Zeit zu minimieren.
Einlesedateien für die Arbeit mit Java: A3_EinlesenJava.
Aufgabe 4: Krocket
Zu dieser Aufgabe gibt es 5 Beispieleingaben:
Jede Datei beschreibt eine Toraufstellung und ist so aufgebaut:
- 1. Zeile: Anzahl der Tore n und Radius des Balles r.
- Folgende n Zeilen: Koordinaten der Endpunkte jeweils eines Tores.
Hier eine Beispieleingabe:
2 7
10 20 30 40
12 31 11 8
In dem Beispiel stehen insgesamt zwei Tore im Garten und der Ball hat einen Radius von 7cm. Die Tore sind Strecken mit den Endpunkten für Tor 1: (10|20) und (30|40) sowie für Tor 2: (12|31) und (11|8).
Einlesedateien für die Arbeit mit Java: A4_EinlesenJava.
Aufgabe 5: Das ägyptische Grabmal
Zu dieser Aufgabe gibt es 6 Beispieleingaben:
Jede Datei beschreibt einen Gang zu einem Grabmal und ist so aufgebaut:
- 1. Zeile: Anzahl n der Quader im Gang.
- Die folgenden n Zeilen: Die ganzzahlige Periode jedes Quaders.
Die Datei grabmal0.txt entspricht dem Beispiel aus der Aufgabenstellung.
Für die Datei grabmal5.txt benötigt dein Programm eventuell mehr Zeit als für die anderen Eingaben. Versuche, diese Zeit zu minimieren.
Hier eine Beispieleingabe:
3
7
1
8
In diesem Beispiel befinden sich drei Quader im Gang. Der erste Quader hat die Periode 7 Minuten, der zweite 1 Minute und der dritte 8 Minuten.
Einlesedateien für die Arbeit mit Java: A5_EinlesenJava.
Schau dir unser ausführliches FAQ für die erste Runde an. Hier findest du Antworten auf viele Fragen zu den einzelnen Aufgaben.
Letzte Änderungen
6.9.2024
Aufgabe 3: Wandertag
- Der Hinweis zu Nachkommastellen war überflüssig und wurde daher entfernt.
- Es wurde ein Hinweis zur Laufzeit der Beispieleingaben 6 und 7 hinzugefügt.
12.9.2024
Junioraufgabe 1: Quadratisch, praktisch, grün
- Die Anforderungen wurden konkretisiert: Es genügt eine Aufteilung in rechteckige, möglichst quadratische Kleingärten anhand eines gleichmäßigen Rasters wie bei den Beispielen in der Aufgabenstellung.
19.9.2024
- Für alle Aufgaben (bis auf A1 und A2) wurden Einlesedateien für Java zur Materialseite hinzugefügt.
Ein herzliches Dankeschön an Benjamin Sauerstein, Lehrer am Gymnasium Ricarda-Huch-Schule Braunschweig für das Bereitstellen der Dateien.
07.10.2024
- Das FAQ zur 1. Runde wurde aktualisiert. Insbesondere für die Aufgabe 1 Hopsitexte lohnt sich ein Blick ins FAQ.
Hinweis: Natürlich sollen bei diesem Wettbewerb keine Lösungsideen und keine Einsendungen der Aufgaben vor dem Einsendeschluss öffentlich zugänglich gemacht werden. Bitte verwendet daher vor Einsendeschluss keine öffentlichen Repositories für eure Lösungen.
Material zur 2. Runde
Fragen zu den Aufgaben werden im FAQ zur 2. Runde beantwortet, ein wiederholter Blick dorthin lohnt sich also. Auch auf dem BWINF-Community Discord Server beantworten wir gerne eure Fragen: Server beitreten. Wertvolle Anregungen geben aber auch Tipps und Beispiellösungen der Vorjahre.
Wichtig für die Einsendung sind zudem die Beschreibungen von Inhalt und Struktur der einzureichenden ZIP-Archivdatei mit der Aufgabenlösung.
Vorlagen
Hier sowie unter https://git.bwinf.de/bwinf/vorlagen.git haben wir Vorlagen für die Dokumentation zur Verfügung gestellt.
Das Material steht zusammen mit den Aufgaben auch in einem zip-Archiv zur Verfügung:
Git Repository
Unter https://git.bwinf.de könnt ihr euch mit eurem BWINF-Account eigene Git-Repositories anlegen.
WICHTIG: Es sei nachdrücklich darauf hingewiesen, dass vor Einsendeschluss keine Lösungsideen oder Lösungen mit Programmen veröffentlicht werden dürfen. Stellt daher bitte sicher, dass ein eigenes Repository für den Wettbewerb nicht öffentlich einsehbar ist (Einstellung “private”).
Material zu den Aufgaben
Aufgabe 1: Schmucknachrichten
Zu dieser Aufgabe gibt es 12 Beispieleingaben:
- Für Teilaufgabe a)
- Für Teilaufgabe b)
Jede Datei enthält eine Botschaft und ist so aufgebaut:
- 1. Zeile: Anzahl n der verschiedenen Perlenarten.
- 2. Zeile: Der Durchmesser in mm je Perlenart.
- 3. Zeile: Die Botschaft.
Hier ein Beispiel:
4
1 2 2 5
Die Sonne. Sie scheint immer für dich.
In diesem Beispiel gibt es 4 verschiedene Perlenarten. Die erste Perlenart hat den Durchmesser 1mm, die zweite und dritte Perlenart haben 2mm Durchmesser und die letzte 5 mm. Für die Botschaft “Die Sonne. Sie scheint immer für dich." muss mit den gegebenen Perlen eine möglichst kurze Codierung gefunden werden.
Die Datei schmuck0.txt entspricht dem Beispiel aus der Aufgabenstellung.
Die Eingabedateien sind UTF-8 codiert ohne BOM am Anfang der Dateien. BOM besteht normalerweise aus drei Bytes, welche die Art der UTF-Codierung spezifizieren.
Jedes Unicode-Symbol gilt als Zeichen, welches codiert werden muss. In der Botschaft wurden Zeilenumbrüche durch Leerzeichen ersetzt, daher sind die Texte teilweise schwer lesbar.
Ein brauchbares Lösungsprogramm hat für zwei Beispieleingaben folgende Werte berechnet:
schmuck5.txt : 2448mm
schmuck9.txt : 20506mm
Aufgabe 2: Simultane Labyrinthe
Zu dieser Aufgabe gibt es 10 Beispieleingaben:
- labyrinthe0.txt
- labyrinthe1.txt
- labyrinthe2.txt
- labyrinthe3.txt
- labyrinthe4.txt
- labyrinthe5.txt
- labyrinthe6.txt
- labyrinthe7.txt
- labyrinthe8.txt
- labyrinthe9.txt
Jede Datei beschreibt die beiden Labyrinthe. In der 1. Zeile werden Breite n und Höhe m der beiden Labyrinthe angegeben. Danach werden die Labyrinthe nacheinander jeweils so definiert:
- m Zeilen mit je n-1 Einträgen: Für jede Labyrinthzeile wird für jedes Feld angegeben, ob rechts davon eine vertikale Wand ist oder nicht. Eine 1 steht für eine Wand, eine 0 für keine Wand.
- m-1 Zeilen mit je n Einträgen: Für jede Labyrinthzeile wird für jedes Feld angegeben, ob unterhalb des Feldes eine horizontale Wand ist oder nicht. Eine 1 steht für eine Wand, eine 0 für keine Wand.
- 1 Zeile: Anzahl g der Gruben.
- g Zeilen: Pro Zeile die Koordinate einer Gruben im Labyrinth im Format xy. Die Koordinate (0,0) entspricht der Startposition, also der oberen linken Eckposition. Gibt es keine Gruben, folgen direkt die Angaben für das zweite Labyrinth beginnend bei den Angaben zu den vertikalen Wänden.
Die Datei labyrinthe0.txt entspricht dem Beispiel aus der Aufgabenstellung und wird hier erläutert. Die Zeilennummerierung ist in den Dateien nicht enthalten und dient der besseren Verständlichkeit der Beschreibung. Für eine visuelle Unterstützung bietet es sich an, die Aufgabenstellung vorliegen zu haben.
1: 3 3
2: 1 0
3: 1 1
4: 0 1
5: 0 0 0
6: 0 0 0
7: 0
8: 1 0
9: 0 1
10: 0 0
11: 0 0 0
12: 1 1 0
13: 1
14: 0 2
Es handelt sich um zwei Labyrinthe mit den Maßen 3 x 3. Zeile 2 bis 4 beschreiben die vertikalen Wände in den einzelnen Labyrinthzeilen des ersten Labyrinths. Beispielsweise ist in der ersten Labyrinthzeile zwischen dem ersten und zweiten Feld eine Wand, zwischen dem zweiten und dritten Feld nicht. Zeile 5 und 6 beschreiben die horizontalen Wände des ersten Labyrinths. In diesem Labyrinth sind keine horizontalen Wände vorhanden. Die 0 in Zeile 7 sagt aus, dass es keine Gruben gibt. Damit ist die Beschreibung des ersten Labyrinths abgeschlossen.
Es folgen in Zeile 8 bis 10 direkt die Angaben für die vertikalen Wände des zweiten Labyrinths. Aus Zeile 12 ist ersichtlich, dass an Position eins und zwei unterhalb der zweiten Labyrinthzeile im zweiten Labyrinth Wände existieren. Zeile 13 gibt an, dass es im zweiten Labyrinth eine Grube gibt. Sie ist laut Zeile 14 an Position (0,2).
Aufgabe 3: Konfetti
Zu dieser Aufgabe gibt es 14 Beispieleingaben:
- konfetti00.txt
- konfetti01.txt
- konfetti02.txt
- konfetti03.txt
- konfetti04.txt
- konfetti05.txt
- konfetti06.txt
- konfetti07.txt
- konfetti08.txt
- konfetti09.txt
- konfetti10.txt
- konfetti11.txt
- konfetti12.txt
- konfetti13.txt
Jede Datei beschreibt einen zerschnittenen Aushang und ist so aufgebaut:
- 1. Zeile: Zwei ganze Zahlen r und c, sowie ein Zeichen t:
- r ist die Anzahl der Personen = Zeilen des Aushangs.
- c ist die Anzahl der Termine = Spalten des Aushangs.
- t gibt an, ob Annas Zeile in dem Beispiel bekannt (y) oder unbekannt (n) ist.
- Folgende r Zeilen: Jeweils c durch Leerzeichen getrennte Zeichen. y steht für einen möglichen, n für einen unmöglichen Zeitslot, ? für ein unleserliches Zeichen.
- Wenn Annas Zeile nicht bekannt ist, ist die Beschreibung des Aushangs abgeschlossen
- Ist Annas Zeile bekannt, folgt eine letzte Zeile: Annas richtig geordnete Terminangaben wieder mit möglichen (y) und unmöglichen (n) Zeitslots, sowie ggf. ? bei unleserlichen Zeichen. Diese Angabe entspricht der ersten Zeile der r Zeilen, allerdings mit der korrekten Anordnung der Spalten.
Hier eine Erklärung zu konfetti00.txt, das Beispiel vom Aufgabenblatt zu Teilaufgabe d :
4 4 n
n y n n
y y ? n
y n n y
y n y n
In diesem Beispiel gibt es vier Personen und vier mögliche Zeitslots. Anna weiß ihre eigenen Angaben nicht mehr. Die erste Person hat an drei von vier Zeitslots keine Zeit. Die zweite Person hat an zwei Zeitslots sicher Zeit, eine Angabe ist unleserlich und einmal hat sie keine Zeit. Person drei und vier können jeweils an zwei von vier Zeitslots.
Die hohe Anzahl an Beispielen resultiert aus den Teilaufgaben dieser Aufgabe. Wir erwarten in der Dokumentation folgende Ausgaben bei den Teilaufgaben:
Teilaufgabe a & b:konfetti01.txt - konfetti05.txt
Teilaufgabe c:konfetti06.txt & konfetti07.txt
Teilaufgabe c & d:konfetti08.txt & konfetti12.txt
Teilaufgabe d:konfetti09.txt - konfetti11.txt und konfetti00.txt
Teilaufgabe e:konfetti13.txt und alle bisher “nicht lösbaren” Beispiele.
Ist ein Beispiel lösbar, wird eine zulässige Anordnung als Ausgabe erwartet, ansonsten ein Hinweis auf Unlösbarkeit.
Schau dir unser ausführliches FAQ für die 2. Runde an. Hier findest du Antworten auf viele Fragen zu den einzelnen Aufgaben.
Letzte Änderungen
Noch keine Änderungen
Hinweis: Natürlich sollen bei diesem Wettbewerb keine Lösungsideen und keine Einsendungen der Aufgaben vor dem Einsendeschluss öffentlich zugänglich gemacht werden. Bitte verwendet daher vor Einsendeschluss keine öffentlichen Repositories für eure Lösungen.