Submission
Status:
[PPPPP][PPPPP]
Score: 100
User: krittaphot
Problemset: จุดแวะพัก
Language: cpp
Time: 0.026 second
Submitted On: 2025-03-16 12:53:36
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,k;
cin >> n >> k;
map<string,vector<int>> mp;
string name;
for(int i = 0;i<n;i++){
cin >> name;
int num;
vector<int> stops;
while(cin >> num)
{
stops.push_back(num);
if (cin.peek() == '\n')
break;
}
mp[name] = stops;
}
vector<pair<int,string>> seq;
for(auto i : mp){
string nm = i.first;
vector<int> place = i.second;
auto it = lower_bound(place.begin(),place.end(),k);
if(it != place.end() && *it == k){
int gap = it-place.begin();
seq.push_back({gap,nm});
}
}
sort(seq.begin(),seq.end());
if (seq.empty()) cout << "-1";
for(int i = 0;i<min(3,(int)seq.size());i++){
cout << seq[i].second << " ";
}
}