Gruppo vacanze

Per aiutarti con questo task, abbiamo preparato delle tracce di soluzione, che includono solo le parti di lettura dell'input e scrittura dell'output (da tastiera e su schermo). Puoi decidere se leggere/scrivere su file decommentando le opportune righe di codice.

Descrizione del problema

Alessandro ha vinto alla lotteria un pacchetto all-inclusive per una vacanza a Budapest per quattro persone! Sfortunatamente, i suoi numerosi impegni non gli permettono di andare in vacanza. Per questo ha deciso di individuare, fra i suoi conoscenti, un gruppo di quattro persone a cui regalare la vacanza.

"Veduta aerea di Budapest con il Danubio"

Alessandro ha NN conoscenti, numerati da 00 a N−1N - 1. Alcuni di essi sono amici fra loro. In particolare, fra i conoscenti di Alessandro esistono MM coppie di amici (l'amicizia è sempre reciproca: se AA è amico di BB, anche BB è amico di AA e viceversa).

Secondo Alessandro, un gruppo di 4 persone è un gruppo vacanza perfetto se ognuno di loro ha già due amici nel gruppo, ma anche una persona nuova con cui fare amicizia (in altre parole, se ciascuno dei quattro membri è amico di esattamente due degli altri tre).

Aiutalo a contare quanti sono tutti i gruppi vacanza perfetti possibili fra i suoi conoscenti.

Dati di input

La prima riga del file di input contiene un intero TT, il numero di casi di test. Seguono TT casi di test, numerati da 11 a TT. Ogni caso di test è preceduto da una riga vuota.

Ogni caso di test è composto da M+1M + 1 righe:

  • la prima riga contiene gli interi NN e MM;
  • la ii-esima (0≤i<M0 \le i < M) delle successive MM righe contiene due interi AiA_i e BiB_i, a significare che le persone AiA_i e BiB_i sono amici.

Dati di output

Il file di output deve contenere la risposta ai casi di test che sei riuscito a risolvere. Per ogni caso di test che hai risolto, il file di output deve contenere una riga con la dicitura:

Case #t: g

dove t è il numero del caso di test (a partire da 11) e il valore g è il numero di gruppi vacanza perfetti possibili.

Assunzioni

  • T=19T = 19, nei file di input che scaricherai saranno presenti esattamente 1919 casi di test.
  • 4≤N≤15004 \le N \le 1500.
  • 0≤M≤30000 \le M \le 3000.
  • 0≤Ai, Bi<N0 \le A_i, \, B_i < N per i=0, …, M−1i = 0, \, \dots, \, M - 1.
  • Ai≠BiA_i \ne B_i per i=0, …, M−1i = 0, \, \dots, \, M - 1 (nessuna persona è amica di se stessa).
  • Le MM coppie di amici sono tutte distinte.

Nei primi 88 casi di test valgono le seguenti assunzioni aggiuntive:

  • N≤50N \le 50.
  • M≤1000M \le 1000.

Note

  • Due gruppi vacanza contano come diversi se c'è almeno una persona che appartiene al primo gruppo ma non al secondo. Cioè, l'ordine delle persone all'interno di un gruppo non è importante.

Esempi di input/output


Input:

3

5 6
4 0
3 4
1 2
1 4
3 2
0 2

4 6
0 1
0 2
0 3
1 2
1 3
2 3

7 15
2 3
6 0
3 4
2 6
3 5
5 2
6 4
2 0
2 1
4 1
4 5
0 5
6 1
5 6
3 0

Output:

Case #1: 3
Case #2: 0
Case #3: 4

Spiegazione

Nel primo caso d'esempio, le M=6M = 6 relazioni di amicizia tra gli N=5N = 5 conoscenti di Alessandro sono mostrate in figura (a), dove le persone sono indicate da un cerchio e le amicizie da linee.

"Figura 1a"

Ci sono 33 possibili gruppi vacanza perfetti: {0, 2, 3, 4}\{0, \, 2, \, 3, \, 4\}, {0, 1, 2, 4}\{0, \, 1, \, 2, \, 4\} e {1, 2, 3, 4}\{1, \, 2, \, 3, \, 4\}, mostrati rispettivamente nelle figure (b), (c) e (d).

"Figura 1b" "Figura 1c" "Figura 1d"

Nel secondo caso d'esempio, ci sono N=4N = 4 persone e sono tutte amiche tra loro. Pertanto, è impossibile selezionare un gruppo di quattro persone come richiesto, perché ciascuno sarebbe amico di tutti e tre gli altri membri del gruppo.

"Figura 2"

Nel terzo caso d'esempio, ci sono N=7N = 7 persone e M=15M = 15 relazioni di amicizia. In totale ci sono 44 possibili gruppi vacanza perfetti.

Invia soluzione

Accedi per inviare soluzioni
Accedi