#include <stdio.h>
#include <string.h>
#include <algorithm>

using namespace std;

struct Algo {
    char name[100];
    int d;
    int idx; // 사전순 정렬 했을 때 순서
};

struct mem {
    char name[100];
    int t;
    int algo1;
    int algo2; //index
};

int n, m, Q, al1_idx, al2_idx, standard;
Algo A[250];
mem s[20];

bool cmp(Algo A, Algo B) {
    if(abs(A.d-standard) != abs(B.d-standard)) return abs(A.d-standard) < abs(B.d-standard);
    return strcmp(A.name, B.name)< 0;
}

bool CMP(Algo A, Algo B) { //사전 순
    if(A.d != B.d) return A.d < B.d;
    return strcmp(A.name, B.name)< 0;
}

int abs(int a) { return a>0 ? a:-a; }

int main() {

    //입력부
    scanf("%d", &n);

    for(int i=0; i<n; i++) {
        scanf("%s %d", A[i].name, &A[i].d);
    }

    scanf("%d", &m);

    for(int i=0; i<m; i++) {
        scanf("%s %d", s[i].name, &s[i].t);
    }

    //알고리즘 사전순 정렬, 인덱싱
    sort(A, A+n, CMP);
    for(int i=0; i<n; i++) A[i].idx=i;

    //algo1, algo2 설정_매번 정렬?
    for(int i=0; i<m; i++) {
        standard = s[i].t;
        sort(A, A+n, cmp);
        
        s[i].algo1=A[0].idx;
        s[i].algo2=A[1].idx;
    }

    //사전순 정렬
    sort(A, A+n, CMP);
    
    //출력부
    scanf("%d", &Q);

    int mem_idx;
    for(int i=0; i<Q; i++) {
        char nAME[100]={}, tmp[200];
        scanf(" %[^\n]s", tmp);
        
        if(tmp[strlen(tmp)-1]=='!') {
            printf("hai!\n");
            for(int j=0; tmp[j]!=' '; j++)
                nAME[j]=tmp[j];
            
            for(int j=0; j<m; j++) {
                if(strcmp(nAME, s[j].name)==0) {
                    mem_idx=j;
                    break;
                }
            }
            
        }
        else {
            printf("%s yori mo %s\n", A[s[mem_idx].algo2].name, A[s[mem_idx].algo1].name);
        }
    }
}

/*
셀프 예제
9
ad_hoc 2
tppppp 6
case_work_ad_hoc 4
hash_map 6
sorting 6
segtree 15
stable_marriage 20
kinetic_segtree 28
anata 17
5
bronze 4
silver 7
platinum 16
ruby 26
nani 24
10
ruby - chan!
nani ga suki?
platinum - chan!
nani ga suki?
silver - chan!
nani ga suki?
bronze - chan!
nani ga suki?
nani - chan!
nani ga suki?
*/

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: