#pragma warning(disable:4996)
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
struct list
{
struct list* next;
char name[30];
int number;
};
int main()
{
struct list dictionary[26][26][26] = { {NULL,{0},0} };
struct list *input;
struct list
*pool
= (struct list
*)calloc(sizeof(struct list
) * 100000, sizeof(struct list
)); int pool_used = 0;
int index_number;
char name[30] = { 0 };
scanf("%d", &index_number
); for (int i = 0; i < index_number; i++)
{
input = &dictionary[name[0] - 97][name[1] - 97][name[2] - 97];
while (input->number != 0)
{
if (input->next == 0 && pool_used < 100000)
{
input->next = &pool[pool_used++];
}
input = input->next;
}
scanf("%d", &input
->number
); }
while (scanf("%s", &name
) != EOF
) {
input = &dictionary[name[0] - 97][name[1] - 97][name[2] - 97];
while (input->next != NULL)
{
if (strncmp(name
, input
->name
, 30) == 0) {
break;
}
input = input->next;
}
else printf("%s=%d\n", name
, input
->number
);
}
return 0;
}
I3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDk5NikKI2luY2x1ZGUgInN0ZGlvLmgiCiNpbmNsdWRlICJzdGRsaWIuaCIKI2luY2x1ZGUgInN0cmluZy5oIgoKc3RydWN0IGxpc3QKewoJc3RydWN0IGxpc3QqIG5leHQ7CgljaGFyIG5hbWVbMzBdOwoJaW50IG51bWJlcjsKfTsKCgppbnQgbWFpbigpCnsKCXN0cnVjdCBsaXN0IGRpY3Rpb25hcnlbMjZdWzI2XVsyNl0gPSB7IHtOVUxMLHswfSwwfSB9OwoJc3RydWN0IGxpc3QgKmlucHV0OwoJc3RydWN0IGxpc3QgKnBvb2wgPSAoc3RydWN0IGxpc3QqKWNhbGxvYyhzaXplb2Yoc3RydWN0IGxpc3QpICogMTAwMDAwLCBzaXplb2Yoc3RydWN0IGxpc3QpKTsKCWludCBwb29sX3VzZWQgPSAwOwoJaW50IGluZGV4X251bWJlcjsKCWNoYXIgbmFtZVszMF0gPSB7IDAgfTsKCXNjYW5mKCIlZCIsICZpbmRleF9udW1iZXIpOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRleF9udW1iZXI7IGkrKykKCXsKCQlzY2FuZigiJXMiLCAmbmFtZSk7CgkJaW5wdXQgPSAmZGljdGlvbmFyeVtuYW1lWzBdIC0gOTddW25hbWVbMV0gLSA5N11bbmFtZVsyXSAtIDk3XTsKCQl3aGlsZSAoaW5wdXQtPm51bWJlciAhPSAwKQoJCXsKCQkJaWYgKGlucHV0LT5uZXh0ID09IDAgJiYgcG9vbF91c2VkIDwgMTAwMDAwKQoJCQl7CgkJCQlpbnB1dC0+bmV4dCA9ICZwb29sW3Bvb2xfdXNlZCsrXTsKCQkJfQoJCQlpbnB1dCA9IGlucHV0LT5uZXh0OwoJCX0KCQlzY2FuZigiJWQiLCAmaW5wdXQtPm51bWJlcik7CgkJc3RybmNweShpbnB1dC0+bmFtZSwgbmFtZSwgMzApOwoJfQoJd2hpbGUgKHNjYW5mKCIlcyIsICZuYW1lKSAhPSBFT0YpCgl7CgkJaW5wdXQgPSAmZGljdGlvbmFyeVtuYW1lWzBdIC0gOTddW25hbWVbMV0gLSA5N11bbmFtZVsyXSAtIDk3XTsKCQl3aGlsZSAoaW5wdXQtPm5leHQgIT0gTlVMTCkKCQl7CgkJCWlmIChzdHJuY21wKG5hbWUsIGlucHV0LT5uYW1lLCAzMCkgPT0gMCkKCQkJewoJCQkJYnJlYWs7CgkJCX0KCQkJaW5wdXQgPSBpbnB1dC0+bmV4dDsKCQl9CgoJCWlmKChzdHJuY21wKG5hbWUsIGlucHV0LT5uYW1lLCAzMCkgIT0gMCkpcHJpbnRmKCJOb3QgZm91bmRcbiIpOwoJCWVsc2UgcHJpbnRmKCIlcz0lZFxuIiwgbmFtZSwgaW5wdXQtPm51bWJlcik7CgoJfQoJZnJlZShwb29sKTsKCXJldHVybiAwOwp9