Donats dos grafs no dirigits G1 i G2 amb n vèrtexs i m arestes cadascun, podeu determinar si són isomorfs, és a dir, si són bàsicament el mateix graf?
Suposeu que els n vèrtexs es numeren començant en 0. Més formalment, cal determinar si existeix alguna bijecció f : { 0, …, n − 1 } → { 0, …, n − 1 } tal que, per a cada parell de vèrtexs (x, y), x i y estan connectats amb una aresta a G1 si i només si f(x) i f(y) estan connectats amb una aresta a G2.
Entrada
L’entrada consisteix en diversos casos, cadascun amb n i m, seguides de les m arestes de G1, seguides de les m arestes de G2. Suposeu 2 ≤ n ≤ 14 i 0 < m < n(n − 1)/2. No hi ha més d’una aresta entre cada parell de vèrtexs, ni arestes entre un vèrtex i ell mateix.
Sortida
Per a cada cas, escriviu “yes” o “no” segons convingui.
Puntuació
La solució esperada és un backtracking raonablement optimitzat. El jutge us donarà una estimació de la nota màxima que podeu treure (7 o 10) en funció de l’eficiència del vostre codi. En qualsevol cas, tots els últims enviaments s’avaluaran manualment, inclosos els que rebin 0 punts automàtics.
Input
3 2 0 1 1 2 2 0 1 0 4 5 0 1 1 2 3 2 0 3 3 1 3 2 3 1 2 1 2 0 1 0 5 5 0 1 0 2 1 2 0 3 0 4 4 3 4 2 3 2 4 1 1 0
Output
yes yes no