Informática - Nível Iniciante - Semana 30

Removendo ciclos

Vitor e Enzo estão passando o feriado de Carnaval juntos! No intervalo entre dois bloquinhos, eles encontrara um grafo no chão e decidiram brincar um pouco com ele. Esse grafo possui N vértices e M arestas, no qual a i-esima aresta conecta os vértices A_i e B_i (ida e volta), com A_i \neq B_i. Não existem 2 arestas que ligam o mesmo par de vértices.

Enzo, que sempre tem ideias muito mirabolantes, decidiu que seria uma boa brincadeira de carnaval remover arestas do grafo de modo que ele não tenha nenhum ciclo (ou seja, exista no máximo um caminho simples entre cada par de vértices). Mas Vitor, que adora participar de bloquinhos, está com muita pressa e quer voltar a festejar o mais rápido possível. Ajude Vitor a voltar para folia dizendo o menor número de arestas que Enzo deve remover para que o grafo fique sem ciclos.

Entrada:

A primeira linha possui dois inteiros, N e M.

As próximas M linhas possuem 2 inteiros cada, sendo que a i-esima delas contém A_i e B_i.

Saída:

Imprima apenas um inteiro: o menor número de arestas que precisam ser removidas para que o grafo não tenha ciclos.

Limites:

  • 1\leq N \leq 2*10^5
  • 0\leq M \leq 2*10^5
  • 1\leq A_i,B_ i \leq 100

 

Exemplo:

Entrada Saída
6 7
1 2
1 3
2 3
4 2
6 5
4 6
4 5
2

Entrada Saída
4 2
1 2
3 4
0

Para submeter sua solução, use esse link.