Submission
Status:
[P-SSS][PP-SS]
Score: 0
User: mydKN
Problemset: จุดแวะพัก
Language: cpp
Time: 0.003 second
Submitted On: 2025-03-23 13:37:11
#include<bits/stdc++.h>
using namespace std;
using psi = pair<string, int>;
const int inf = 2e9;
int n, k;
vector<psi> vec;
bool comp(const psi& a, const psi& b){
if(a.second == b.second){
return a.first < b.first;
}
return a.second < b.second;
}
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);
cin >> n >> k;
for(int i=0;i<n;++i){
string name;
cin >> name;
string str;
getline(cin, str);
int cnt = 1;
int val = 0;
int camp = 0;
int found = inf;
for(int j=str.length()-1;j>=0;--j){
if(str[j] != ' '){
val += ((str[j] - '0') * cnt);
cnt *= 10;
++camp;
}
else{
if(val == k){
found = camp;
}
val = 0;
cnt = 1;
}
}
if(found != inf){
found = camp - found + 1;
}
vec.emplace_back(name, found);
// cout << found << "\n";
// cout << name << str << "\n";
}
sort(vec.begin(), vec.end(), comp);
for(int i=0;i<3;++i){
cout << vec[i].first << " ";
}
}