Submeter | Todas submissőes | Melhores | Voltar |
GINCAN11 - Gincana |
Toda semana Juquinha tem aulas de ACM (Artes Cênicas e Musicais) no colégio em que estuda e, recentemente, sua professora anunciou que haverá uma gincana no final do semestre. No entanto, os times devem ser formados o mais breve possível para que os alunos possam ensaiar.
Cada time é constituído de um ou mais alunos, e cada aluno tem que pertencer a exatamente um time. Além disso, os times não podem ser formados de qualquer maneira: se um aluno é amigo de outro, esses alunos devem estar no mesmo time. A professora então pediu para que os alunos a informassem das relações de amizade na sala de aula.
Os alunos então se numeraram de 1 até N e escreveram uma lista cujas linhas contém pares de números. Se dois alunos cujos números são i e j são amigos, haverá ao menos uma linha contendo i e j ou j e i na lista. Inversamente, se há uma linha contendo i e j na lista, então os alunos cujos números são i e j são amigos.
A professora então recolheu a lista e, na próxima aula, deverá decidir que times formar. Ela está pensando em formar o maior número possível de times e gostaria de saber quantos times ela formaria. Ajude então a professora escrevendo um programa que, dada a lista de amizades, determina qual o maior número de times que ela pode formar.
Entrada
A primeira linha da entrada contém dois inteiros N e M que representam, respectivamente, o número de alunos na turma e o número de linhas na lista.
As próximas M linhas contêm a lista de amizades. Cada linha contém dois inteiros I e J separados por exatamente um espaço.
Saída
Seu programa deve imprimir uma linha contendo o número máximo de times que podem ser formados pela professora.
Restrições
- 1 ≤ N ≤ 1000.
- 0 ≤ M ≤ 5000.
- 1 ≤ I, J ≤ N.
Exemplos
Entrada 3 1 1 3 Saída 2 Entrada 7 6 1 6 6 4 5 2 3 7 2 3 7 2 Saída 2
Adicionado por: | Wanderley Guimarăes |
Data: | 2012-02-29 |
Tempo limite: | 1s |
Tamanho do fonte: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Linguagem permitida: | Todas exceto: ASM64 CLOJURE ERL FSHARP PERL6 PY_NBC SCALA TCL |
Origem: | OBI 2011 - fase 2 nível junior |
hide comments
2016-04-21 17:20:42 Elsio [UFABC]
Monta o grafo, aplica o dfs. reinicia o dfs ate ter visitado todo o grafo. conta quantas vezes reiniciou o dfs. Relacionados: http://br.spoj.com/problems/ENERGIA/# (facinho) http://br.spoj.com/problems/OBIDOMIN/# (um pouco mais dificil que esse) |
|
2012-08-27 12:03:08 Diego Climaites [USJT]
O enunciado está correto? O parágrafo que diz os alunos se numeraram de 1 até n me parece repetitivo... |