Donat un graf no dirigit amb vèrtexs, un aparellament és un subconjunt de les arestes sense cap vèrtex en comú. Feu un programa que digui si un graf donat té un aparellament màxim, és a dir, un agrupament dels vèrtexs en parells de manera que tots els vèrtexs estiguin en algun parell, i que els dos vèrtexs de cada parell estiguin connectats directament.
L’entrada consisteix en diversos casos. Cada cas comença amb i el nombre d’arestes , seguits de parells de vèrtexs. Suposeu , que és parell, que els vèrtexs es numeren de 1 a , que no hi ha arestes repetides ni connectant un vèrtex amb ell mateix, i que no hi ha cap vèrtex de grau zero.
Per a cada cas, digueu si el graf té algun aparellament màxim.
Hi ha algorismes polinòmics, més o menys complicats, per resoldre aquest problema. Aquí, ens conformem amb un simple backtracking.
Input
2 1 1 2 4 4 1 2 3 1 4 1 2 3 4 3 1 2 1 3 1 4 6 8 1 2 1 4 2 3 2 5 2 6 3 4 4 5 4 6
Output
si si no no