Submission

Status:

[PPPPP][PPPPP]

Subtask/Task Score:

{50/50}{50/50}

Score: 100

User: koon

Problemset: จุดแวะพัก

Language: cpp

Time: 0.014 second

Submitted On: 2026-03-03 15:30:34

#include <bits/stdc++.h>
using namespace std;

struct P{
    string name;
    int g;
};

bool st(P a, P b) {
    if (a.g == b.g) {
        return a.name < b.name;
    } else {
        return a.g < b.g;
    }
}

int main() {
    int n; cin >> n;
    int m; cin >> m;
    cin.ignore();
    vector<P> data;
    for (int i = 0; i < n; i++) {
        string line;
        getline(cin, line);
        stringstream ss(line);
        string s;
        ss >> s;
        int x;
        int cnt = 0;
        bool c = false;
        while (ss >> x) {
            if (x == m) {
                c = true;
                break;
            }
            cnt++;
        }
        P t;
        t.name = s;
        t.g = cnt;
        if (c) data.push_back(t);
    }
    if (data.empty()) {
        cout << "-1";
        return 0;
    }
    int limit = min(3, (int)data.size());
    sort(data.begin(), data.end(), st);
    for (int i = 0; i < limit; i++) {
        cout << data[i].name << ' ';
    }
    return 0;
}