Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <sstream>
- #include <string>
- #include <algorithm>
- #include <queue>
- #include <cstdio>
- //Variaveis Globais
- int n,indice,conta;
- int input[801][801];
- //Funcoes Pre-Declaradas
- void imprime();
- int BFS();
- using namespace std;
- int main(){
- int i,j,n_aux, maximo = 0, res;
- string linha;
- while (scanf_s("%d", &n) != EOF){
- maximo = 0;
- memset(input,0,sizeof(input));
- //Guardar os dados
- for (i = 0; i < n; ++i){
- scanf_s("%d", &input[i][0]);
- if (input[i][0]>maximo){
- maximo = input[i][0];
- indice = i;
- }
- for (j = 1; j < input[i][0] + 1;j++){
- scanf_s("%d",&input[i][j]);
- }
- }
- if (input[0][0] == maximo && indice == 0)
- cout << "King of popularity!\n";
- else{
- res = BFS();
- cout << res << endl;
- }
- }
- system("pause");
- return 0;
- }
- void imprime(){
- int i, j;
- for (i = 0; i < n; ++i){
- cout << endl;
- for (j = 0; j < n; ++j){
- cout << " " << input[i][j];
- }
- }
- }
- int BFS(){
- int v,i;
- queue<int> fila;
- conta = 0;
- bool visitado[800];
- memset(visitado, false, sizeof(visitado));
- visitado[0] = true;
- fila.push(0);
- while (!fila.empty()){
- v = fila.front();
- for (i = 1; i < input[v][0]+1; ++i){
- if (!visitado[input[v][i] - 1]){
- visitado[input[v][i] - 1] = true;
- fila.push(input[v][i] - 1);
- if (input[v][i] - 1 == indice)
- return conta;
- }
- }
- conta++;
- fila.pop();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement