Submission

Status:
[P-SSS][-SSSS]

Score: 0

User: qwerty

Problemset: จุดแวะพัก

Language: cpp

Time: 0.026 second

Submitted On: 2025-03-16 15:45:08

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

int main() {
    int n, k;
    cin >> n >> k;
    cin.ignore();
    vector<pair<string, vector<int>>> data;

    priority_queue<pair<int, string>, vector<pair<int, string>>, greater<pair<int, string>>> count;
    for (int i = 0 ; i < n ; i++) {
        string line;
        getline(cin, line);
        istringstream iss(line);
        string name;
        iss >> name;

        vector<int> nums;
        int num;
        while(iss >> num) {
            nums.push_back(num);
        }
        data.push_back({name, nums});
        // cout << "*";
    }

    // for (const auto& entry : data) {
    //     cout << "Name: " << entry.first << "\nData: ";
    //     for (int n : entry.second) {
    //         cout << n << " ";
    //     }
    //     cout << endl;
    // }

    for (int i = 0 ; i < n ; i++) {
        vector<int> v = data[i].second;
        if (binary_search(v.begin(), v.end(), k)) {
            count.push({lower_bound(v.begin(), v.end(), k)-v.begin(), data[i].first});
        } else {
            count.push({-1, data[i].first});
        }
    }

    for (int i = 0 ; i < n ; i++) {
        if (count.top().first == -1) {
            count.pop();
            continue;
        }
        cout << count.top().second << " ";
        count.pop();
    }
}

/*5 7
taohu 0 1 7 9
mafuyu 2 5
ccsleep 2 4 7 25
sira 7
iris 32 64 128*/