Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:blc:informatik:ffprg2-2020:soi [2020/09/25 13:56] – Ivo Blöchliger | lehrkraefte:blc:informatik:ffprg2-2020:soi [2020/10/20 20:43] (current) – [Aufgabe 2, Geheimcode] Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Vorbereitung auf die Informatik-Olympiade ====== | ||
| + | Siehe https:// | ||
| + | |||
| + | ====== Input/ | ||
| + | Es geht darum, die Datenfiles einzulesen. Das soll direkt vom " | ||
| + | |||
| + | Hier ein Vorschlage für die erste Aufgabe (stairrace): | ||
| + | <code python> | ||
| + | import sys | ||
| + | |||
| + | # Problem loesen | ||
| + | |||
| + | def loesen(case, | ||
| + | # Loesung ausgeben | ||
| + | print(" | ||
| + | |||
| + | |||
| + | # Daten einlesen | ||
| + | # Alle print-statements müssen natürlich noch raus... | ||
| + | |||
| + | ntest = int(sys.stdin.readline()) | ||
| + | print(" | ||
| + | for test in range(ntest): | ||
| + | print(" | ||
| + | lang = int(sys.stdin.readline()) | ||
| + | links = [int(d) for d in sys.stdin.readline().split()] | ||
| + | print(links) | ||
| + | rechts = [int(d) for d in sys.stdin.readline().split()] | ||
| + | print(rechts) | ||
| + | print(" | ||
| + | loesen(test, | ||
| + | print(" | ||
| + | |||
| + | </ | ||
| + | Ausführen mit | ||
| + | python stairrace.py < beispiel2.txt | ||
| + | |||
| + | |||
| + | Und das gleiche in C++: | ||
| + | <code c++> | ||
| + | #include < | ||
| + | |||
| + | using namespace std; | ||
| + | |||
| + | void solve(int fall, int lang, int links[], int rechts[]) { | ||
| + | cout << "Case #" << fall << " 42" << endl; | ||
| + | |||
| + | } | ||
| + | |||
| + | int main() { | ||
| + | int n; | ||
| + | cin >> n; | ||
| + | cout << " | ||
| + | for (int c=0; c<n; c++) { | ||
| + | cout << " | ||
| + | int lang; | ||
| + | cin >> lang; | ||
| + | int hoch[2][lang]; | ||
| + | for (int seite=0; seite<2; seite++) { | ||
| + | for (int h=0; h<lang; h++) { | ||
| + | cin >> hoch[seite][h]; | ||
| + | cout << hoch[seite][h] << " "; | ||
| + | } | ||
| + | cout << endl; | ||
| + | } | ||
| + | solve(c, lang, hoch[0], hoch[1]); | ||
| + | } | ||
| + | |||
| + | return 0; | ||
| + | } | ||
| + | </ | ||
| + | Übersetzen auf der Konsole (Terminal) mit | ||
| + | g++ parse.cpp -o parse | ||
| + | und Ausführen mit | ||
| + | ./parse < beispiel2.txt | ||
| + | wobei die in der Datei beispiel2.txt die Eingabe steht. | ||
| + | |||
| + | |||
| + | ===== Aufgabe 1, Treppenlauf ===== | ||
| + | Hinweis: Den Eingabe-Files sind die Lösungen angehängt, sollten aber vom Solver einfach ignoriert werden (weil nach allen Test-Cases). | ||
| + | |||
| + | |||
| + | * Mehr Test-Cases für Teilaufgabe 3: {{ : | ||
| + | * Mehr Test-Cases für Teilaufgabe 4 (ohne Gewähr für die Korrektheit): | ||
| + | |||
| + | |||
| + | ===== Aufgabe 4, Batterie flicken ===== | ||
| + | * Teilaufgabe 3, {{ : | ||