Rouba Bandeira

Propaganda
Rouba Bandeira
Um grupo de N crianças decidiu brincar de rouba bandeira. Para isso, elas precisam se separar
em dois times com a mesma quantidade de crianças. Porém, algumas delas são muito amigas e
querem estar no mesmo time. Por outro lado, outras são inimigas e não querem estar no mesmo
time. Determine o número de formas de dividir os times satisfazendo todas essas restrições.
Duas formas de dividir as crianças em times são consideradas diferentes se e somente se existe
um par de crianças que são companheiras em uma das formas e adversárias na outra. Como a
resposta pode ser muito grande, calcule-a mod 1.000.000.007.
Entrada
Há múltiplos casos de teste.
A primeira linha de cada caso de teste contém três inteiros N, A e I (1 ≤ N ≤ 1000, 0 ≤ A, I ≤ (n·(n1))/2), onde N é o número de crianças, A é o número de relações de amizade e I é o número de
relações de inimizade. A seguir, A linhas descrevem as relações de amizade e I linhas
descrevem as relações de inimizade. Uma relação de amizade/inimizade é representada por um
par de inteiros (p, q), tal que 1 ≤ p, q ≤ N, indicando que a relação existe entre as crianças p e q.
A entrada termina quando N=A=I=0.
Saída
Para cada caso de teste, imprima uma linha contendo um único inteiro que representa o número
de formas de dividir os times mod (109 + 7).
Exemplos
Entrada:
200
400
412
12
13
24
300
000
Saída:
1
3
1
0
Download