lehrkraefte:blc:informatik:ffprg2-2020:soi

This is an old revision of the document!


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)

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 mit

g++ parse.cpp -o parse

und Ausführen mit

./parse < beispiel2.txt

wobei die in der Datei beispiel2.txt die Eingabe steht.

  • lehrkraefte/blc/informatik/ffprg2-2020/soi.1600940308.txt.gz
  • Last modified: 2020/09/24 11:38
  • by Ivo Blöchliger