#include <stdio.h>
int main ()
{
int n_cidades, m_estradas[100][100], cidade_k;
int cont1, cont2;
int qtdsai=0, qtdchega=0, maior=0, somaMaior, somaAux;
scanf("%d", &n_cidades);
for (cont1=0; cont1<n_cidades; cont1++)
for (cont2=0; cont2<n_cidades; cont2++)
scanf("%d", &m_estradas[cont1][cont2]);
scanf("%d", &cidade_k);
for (cont1=0; cont1<n_cidades; cont1++)
{
if((cont1!=cidade_k) && (m_estradas[cont1][cidade_k]==1))
qtdchega++;
if((cont1!=cidade_k) && (m_estradas[cidade_k][cont1]==1))
qtdsai++;
}
printf ("Estradas que chegam em %d = %d\n", cidade_k, qtdchega);
printf ("Estradas que saem de %d = %d\n", cidade_k, qtdsai);
for (cont1=(n_cidades-1); cont1>0; cont1--)
{
somaMaior=0;
somaAux=0;
for (cont2=(n_cidades-1); cont2>=0; cont2--)
{
somaMaior+=m_estradas[cont2][maior];
somaAux+=m_estradas[cont2][cont1];
}
if (somaAux>=somaMaior)
maior=cont1;
}
printf ("Maior numero de estradas para %d\n", maior);
for (cont1=0; cont1<n_cidades; cont1++)
if ((m_estradas[cidade_k][cont1]==1)&&(m_estradas[cont1][cidade_k]==1)&&(cont1!=cidade_k))
printf("Mao dupla entre %d e %d\n", cidade_k, cont1);
for (cont1=0; cont1<n_cidades; cont1++)
{
somaAux=0;
for (cont2=0; cont2<n_cidades; cont2++)
if (cont1!=cont2)
somaAux=somaAux + m_estradas[cont1][cont2] + m_estradas[cont2][cont1];
if (somaAux==0)
printf ("A cidade %d e isolada\n", cont1);
}
for (cont1=0; cont1<n_cidades; cont1++)
{
qtdsai=0;
for (cont2=0; cont2<n_cidades; cont2++)
if ((m_estradas[cont1][cont2]!=0) && (cont1!=cont2))
qtdsai++;
if (qtdsai==0)
printf ("A cidade %d nao tem saida\n", cont1);
}
for (cont1=0; cont1<n_cidades; cont1++)
{
qtdchega=0;
for (cont2=0; cont2<n_cidades; cont2++)
if ((m_estradas[cont2][cont1]!=0) && (cont1!=cont2))
qtdchega++;
if (qtdchega==0)
printf ("A cidade %d nao tem entrada\n", cont1);
}
return 0;
}