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 << " ";
	}

}