Submission

Status:

[PPPPP][PPPPP]

Subtask/Task Score:

{50/50}{50/50}

Score: 100

User: C12

Problemset: จุดแวะพัก

Language: cpp

Time: 0.005 second

Submitted On: 2026-01-09 10:48:21

#include <bits/stdc++.h>
using namespace std;

// #define f first
// #define s second
#define pii pair<ll,ll>
#define puii pair<ull,ull>
#define piii pair<ll,pii>
#define ll long long
#define ull unsigned long long
#define mp make_pair
 
#define mpiii(a,b,c) make_pair(a,make_pair(b,c));
ll mod = 1000000007;

bool compare(pair<string,ull> a,pair<string,ull> b){
    if(a.second < b.second)
    {
        return true;
    }
    else if (a.second > b.second)
    {
        return false;
    }

    return a.first < b.first;
}

void solve(){
    ull n,k;

    cin >> n >> k;

    vector<pair<string,ull>>v;
    
    
    string s,name;
    int start,num,cnt;
    ll out;
    int c;
    
    // cin.ignore('\n');
    for(int i = 0;i < n;i++){
        c = -1;
        getline(cin >> ws,s);
        // cout << s << '\n';

        out = INT16_MAX;
        num = 0;
        cnt = 0;

        for(int j = 0;j <= s.length();j++){
            if(j == s.length() || s[j] == ' '){
                if(c >= 0){
                    num = stoi(s.substr(start,j-start));
                    if(num < k){
                        cnt++;
                    }
                    else if(num == k){
                        out = cnt;
                        break;
                    }
                    else if(num > k){
                        out = INT16_MAX;
                        break;
                    }
                }
                else{
                    name = s.substr(0,j);
                }
                start = j+1;
                c++;

                // cout << num << ' ';
            }
        }    
        
        // cout << out << '\n';
        v.push_back(mp(name,out));
    }

    sort(v.begin(),v.end(),compare);

    if(v[0].second < INT16_MAX){
        // for(int i = 0;i < n;i++){
        for(int i = 0;i < n && i < 3;i++){
            if(v[i].second < INT16_MAX){
                cout << v[i].first << ' ';
            }
        }
    }
    else{
        cout << -1;
    }

    return;
}
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);

    ll q;
 
    // cin >> q;

    // while(q--) 
    
    solve();

    return 0;
}