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*/