#include <string>
#include <vector>
#include <iostream>

using namespace std;

struct Competitor {
    string name;
    int points;
};

using Competitors = vector<Competitor>;

std::string second_best(const Competitors& competitors) {
    if(competitors.size() < 2)
        return "";

    auto best = competitors.begin();
    auto second = competitors.begin() + 1;

    for(auto p = competitors.begin() + 1; p != competitors.end(); ++p ) {
        if(p->points >= best->points) {
            second = best;
            best = p;
        } else if(p->points >= second->points) {
            second = p;
        }
    }
    return second->name;
}


int main() {
    Competitors c;
    c.push_back( { "Abacki", 100 } );
    c.push_back( { "Babacki", 80 } );
    c.push_back( { "Cabacki", 90 } );
    c.push_back( { "Dabacki", 99 } );

    cout << second_best(c) << endl;
}
