{"trustable":false,"sections":[{"title":"","value":{"format":"HTML","content":"\u003cdiv id\u003d\"problem-body\" class\u003d\"\"\u003e\n \u003cdiv class\u003d\"col-md-12\"\u003e\n \u003csection id\u003d\"description\" class\u003d\"problem-section\"\u003e\n \u003cdiv class\u003d\"headline\"\u003e\n \u003ch2\u003eDescription\u003c/h2\u003e\n \u003c/div\u003e\n \u003cdiv id\u003d\"problem_description\" class\u003d\"problem-text\"\u003e\n \u003cp\u003eVocê está participando da famosa gameJam do INF, mas não aguenta mais a quantidade de erros apontados pelo compilador do seu código (você é um artista afinal de contas, apenas atura programação). Então você decidiu escrever um programa que resolva alguns desses erros, especificamente, um programa que encontre métodos inúteis no seu jogo.\u003c/p\u003e\n \u003cp\u003eSeu jogo é feito de pacotes. Esses pacotes definem métodos, por exemplo \u003ccode\u003eHelpPackage::HelpFunction\u003c/code\u003e significa que o pacote \"HelpPackage\" define a função \"HelpFunction\"..\u003c/p\u003e\n \u003cp\u003eEntre os seus pacotes aqueles que definem um método chamado \u003ccode\u003ePROGRAM\u003c/code\u003e são chamados de executáveis. Esses métodos são chamados no inicio de seus respectivos executáveis. Pacotes normais não tem método chamado \u003ccode\u003ePROGRAM\u003c/code\u003e. \u003c/p\u003e\n \u003cp\u003ePara cada método no seu jogo você recebera a lista de métodos que o invocam diretamente. Assim você pode facilmente encontrar métodos que nunca são chamados por nenhum outro. Contudo sua tarefa é mais difícil, você deve encontrar todos os métodos não utilizados, ou seja, métodos que nunca são alcançados pelo fluxo de nenhum executável do seu jogo. \u003c/p\u003e\n \u003c/div\u003e\n \u003c/section\u003e\n \u003c/div\u003e\n \u003cdiv class\u003d\"col-md-12\"\u003e\n \u003csection id\u003d\"input\" class\u003d\"problem-section\"\u003e\n \u003cdiv class\u003d\"headline\"\u003e\n \u003ch2\u003eInput\u003c/h2\u003e\n \u003c/div\u003e\n \u003cdiv id\u003d\"problem_input\" class\u003d\"problem-text\"\u003e\n \u003cp\u003eA primeira linha de input contém um inteiro positivo $N$ $(1\\le N\\le400)$, o numero de métodos no seu jogo.\u003c/p\u003e\n \u003cp\u003eCada método é descrito por duas linhas, totalizando $2\\times N$ linhas. A primeira linha consiste em um identificador **único** do método e um inteiro $k_i$, o número de métodos que invocam diretamente esse método, ou uma linha em branco caso $k_i \u003d 0$ $(0\\le k_i\\le N)$\u003c/p\u003e\n \u003cp\u003eOs identificadores dos métodos consistem em um nome de pacote seguido de dois dois pontos e um nome de método, como \u003ccode\u003ePackagename::Methodname\u003c/code\u003e. Ambas as strings, o nome de pacote e o de método cada, consistem de até 20 caracteres maisúsculos, minúsculos ou digitos. $(a-z, A-Z, 0,9)$\u003c/p\u003e\n \u003cp\u003eHaverão exatamente $N$ diferentes identificadores de métodos mencionados no input.\u003c/p\u003e\n \u003c/div\u003e\n \u003c/section\u003e\n \u003c/div\u003e\n \u003cdiv class\u003d\"col-md-12\"\u003e\n \u003csection id\u003d\"output\" class\u003d\"problem-section\"\u003e\n \u003cdiv class\u003d\"headline\"\u003e\n \u003ch2\u003eOutput\u003c/h2\u003e\n \u003c/div\u003e\n \u003cdiv id\u003d\"problem_output\" class\u003d\"problem-text\"\u003e\n \u003cp\u003eUma linha contendo o numero de métodos não utilizados do jogo.\u003c/p\u003e\n \u003c/div\u003e\n \u003c/section\u003e\n \u003c/div\u003e\n\u003c/div\u003e"}},{"title":"Sample Input 1","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre class\u003d\"sampledata\" id\u003d\"sample-input-1\"\u003e2\nSuperGame::PROGRAM 0\n\nHelpPackage::HelpFunction 2\nHelpPackage::HelpFunction SuperGame::PROGRAM\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre class\u003d\"sampledata\" id\u003d\"sample-output-1\"\u003e0\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdiv class\u003d\"row\"\u003e\n\u003c/div\u003e"}},{"title":"Sample Input 2","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre class\u003d\"sampledata\" id\u003d\"sample-input-2\"\u003e2\nLoop::CallA 1\nLoop::CallB\nLoop::CallB 1\nLoop::CallA\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre class\u003d\"sampledata\" id\u003d\"sample-output-2\"\u003e2\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdiv class\u003d\"row\"\u003e\n\u003c/div\u003e"}},{"title":"Sample Input 3","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre class\u003d\"sampledata\" id\u003d\"sample-input-3\"\u003e2\nSuperGame::PROGRAM 1\nSuperServer42::PROGRAM\nSuperServer42::PROGRAM 1\nSuperServer42::PROGRAM\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre class\u003d\"sampledata\" id\u003d\"sample-output-3\"\u003e0\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdiv class\u003d\"row\"\u003e\n\u003c/div\u003e"}}]}