Rezultati

Up. imeNalogaJezikRezultatČas oddaje
rektifikatorji-2018 Plezalne smeri C++ 100/100OK 13. okt '18 @ 11:16

Test Točke Porabljen spomin Porabljen čas Status
#1 50/50 3,063 MiB 0,000 s OK
#2 50/50 3,063 MiB 0,000 s OK

Ocenjevani program (main.cpp):
#include <iostream>
#include <string>
#include <vector>
#include <cstdlib>
#include <unordered_map>

using namespace std;

unordered_map<string, int> numbers = {
{"I-", 0},
{"I", 1},
{"I+", 2},
{"II-", 3},
{"II", 4},
{"II+", 5},
{"III-", 6},
{"III", 7},
{"III+", 8},
{"IV-", 9},
{"IV", 10},
{"IV+", 11},
{"V-", 12},
{"V", 13},
{"V+", 14},
{"VI-", 15},
{"VI", 16},
{"VI+", 17},
{"VII-", 18},
{"VII", 19},
{"VII+", 20},
{"VIII-", 21},
{"VIII", 22},
{"VIII+", 23},
{"IX-", 24},
{"IX", 25},
{"IX+", 26},
{"X-", 27},
{"X", 28},
{"X+", 29},
{"XI-", 30},
{"XI", 31},
{"XI+", 32},
{"XII-", 33},
{"XII", 34},
{"XII+", 35}
};

pair<string, int> parseLine(string line) {
    string num = "";
    int i;
    for (i = 1; i <= line.length(); ++i) {
        if (line[line.length() - i] == ' ') break;

        num = line[line.length() - i] + num;
    }
    return make_pair(line.substr(0, line.length() - i), numbers[num]);
}

int main() {
    vector<string> poti[36];
    int n;
    cin >> n;
    string line;
    cin.ignore();
    for (int i = 0; i < n; ++i) {
        getline(cin, line);
        pair<string, int> pr = parseLine(line);
        int j;
        for (j = 0; j < poti[pr.second].size(); ++j) {
            if (poti[pr.second][j] > pr.first) {
                poti[pr.second].insert(poti[pr.second].begin() + j, pr.first);
                break;
            }
        }
        if (j == poti[pr.second].size()) {
            poti[pr.second].push_back(pr.first);
        }
    }

    for (int i = 0; i < 36; ++i) {
        for (int j = 0; j < poti[i].size(); ++j) {
            cout << poti[i][j] << endl;
        }
    }

    return 0;
}