lehrkraefte:blc:informatik:ffprg2-2020:soi

Vorbereitung auf die Informatik-Olympiade

Siehe https://soi.ch/contests/2021/round1/ für die Aufgaben.

Input/Output

Es geht darum, die Datenfiles einzulesen. Das soll direkt vom “Standard Input” erfolgen. Dazu müssen Zahlen und eventuell Strings korrekt geparst werden.

Hier ein Vorschlage für die erste Aufgabe (stairrace):

import sys
 
# Problem loesen
 
def loesen(case, lang, links, rechts):
    # Loesung ausgeben
    print("Case #%d: %d" % (case, 42));
 
 
# Daten einlesen
# Alle print-statements müssen natürlich noch raus...
 
ntest = int(sys.stdin.readline())
print("Es gibt %d Test-Fälle" % ntest)
for test in range(ntest):
    print("Testfall %d" % test)
    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("Lösung:")
    loesen(test, lang, links, rechts)
    print("-"*20)

Ausführen mit

python stairrace.py < beispiel2.txt

Und das gleiche in C++:

#include <iostream>
 
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 << "Testcases : " << n << endl;
        for (int c=0; c<n; c++) {
                cout << "Testcase " << c << endl;
                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.

Hinweis: Den Eingabe-Files sind die Lösungen angehängt, sollten aber vom Solver einfach ignoriert werden (weil nach allen Test-Cases).

  • lehrkraefte/blc/informatik/ffprg2-2020/soi.txt
  • Last modified: 2020/10/20 22:43
  • by Ivo Blöchliger