Submission
Status:
[PPPPP][PPPPP]
Subtask/Task Score:
{50/50}{50/50}
Score: 100
User: august
Problemset: จุดแวะพัก
Language: cpp
Time: 0.006 second
Submitted On: 2026-03-11 13:50:33
#include <bits/stdc++.h>
using namespace std;
#define pi pair<int,int>
int bs(int tar, vector<int> &bs) {
int l=0, r=bs.size()-1;
while (l<=r) {
int mid = (l+r)/2;
if (bs[mid] == tar) return mid;
else if (bs[mid] < tar) l=mid+1;
else r=mid-1;
}
return -1;
}
int main() {
cin.tie(0)->sync_with_stdio(0);
int n,k;
cin>> n>> k;
cin.ignore();
vector<string> name(n);
vector<vector<int>> num(n);
for (int i=0; i<n; i++) {
string tem;
getline(cin, tem);
tem += " 1";
//cout<< tem;
string tnum="";
bool ok=true, change=false;
for (auto &x : tem) {
if (x == ' ' || x=='\n') ok=false, change=true;
else {
if (ok) name[i] += x;
else {
if (change && tnum.size() != 0) {
int add = 0;
//cout<< tnum<< '\n';
for (auto &y : tnum) {
add*=10;
add += (y-'0');
}
num[i].push_back(add);
tnum = "";
}
change=false;
tnum+=x;
}
}
}
}
/*for (int i=0; i<n; i++) {
cout<< name[i]<< ' ';
for (auto &x : num[i]) cout<< x<< ' ';
cout<< '\n';
}*/
vector<pair<int, string>> can;
for (int i=0; i<n; i++) {
int val = bs(k, num[i]);
if (val==-1) continue;
can.push_back({val, name[i]});
}
sort(can.begin(), can.end());
if (can.size() == 0) {
cout<< -1;
return 0;
}
for (int i=0; i<min(3,(int)can.size()); i++) {
cout<< can[i].second<< ' ';
}
}