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