El professor Oak ha descobert una operació abans mai vista en el món
pokemon, anomenada xor (^ en C++). Il·lusionat amb aquest
descobriment, li ha presentat al dictador de Kanto, al qual li ha
agradat tant la idea que ha decidit imposar un nou sistema
d’impostos.
Suposem el món pokemon modelat com un graf amb pobles (vèrtexs) i rutes (arestes bidireccionals), cadascuna de les quals etiquetada amb un natural, possiblement repetit. L’alcalde de cada poble haurà d’anar des del seu poble fins a la capital de Kanto, la Ciutat Safrà (el vèrtex 0). Per calcular quant haurà de pagar el seu poble, l’alcalde farà el xor de les etiquetes de les rutes per les quals hagi passat. Com Kanto és una regió esportista i aventurera, als alcaldes no els importarà fer un camí llarg per pagar el mínim possible, o fins i tot passar més d’una vegada pel mateix poble, la capital inclosa, o per la mateixa ruta.
Orgullós del seu nou sistema, el dictador li explica al professor Oak, i li demana que calculi quants diners rebrà, perquè ell no té ni idea de calcular xors. Però el professor Oak tampoc els controla gaire, perquè els acaba de descobrir. Podeu ajudar aquests dos dictadors a saber quants diners s’aconseguiran amb el nou impost?
L’entrada conté diversos casos, cadascun amb i , seguits d’ triplets , indicant una aresta entre i amb etiqueta , on . Suposeu que el graf és connex, , , que no hi ha més d’una aresta entre cada parell de vèrtexs, i que les etiquetes es troben entre 0 i .
Per a cada cas, escriviu la suma dels impostos aconseguits amb el nou sistema.
Considereu un graf amb vèrtexs. Eviteu fer un programa recursiu, perquè potser faria massa crides i avortaria.
Input
4 3 0 2 0 3 0 3 1 2 2 4 4 0 1 1 0 2 1 0 3 1 2 3 1 4 6 3 1 5 2 1 3 0 2 2 0 3 4 1 0 0 2 3 1 5 6 2 3 3 3 1 9 2 0 6 0 3 4 0 1 0 0 4 10
Output
5 0 4 16