Nestemate

Time limit: 0.6s Memory limit: 64MB Input: nestemate.in Output: nestemate.out

Dominic este un alchimist renumit pentru experimentele sale cu pietre preţioase. De-a lungul carierei sale a reușit să strângă o colecție de NN nestemate pe care le-a numerotat de la 11 la NN. Conform studiilor sale, aspectul fiecărei nestemate este caracterizat prin trei întregi XX, YY și ZZ reprezentând culoarea, claritatea şi strălucirea acesteia.

Dominic a descoperit o metodă secretă prin care poate face o nestemată din colecția sa să capete aspectul unei alte nestemate din colecţie. Metoda are însă o slăbiciune, reuşind dacă şi numai dacă cel puţin una din valorile primei nestemate este egală cu cel puţin una dintre valorile celeilalte nestemate, dar este irelevant dacă proprietatea pe care o reprezintă cele două valori coincide. De exemplu, nestemata (1,3,4)(1, 3, 4) poate fi transformată în nestemata (3,2,2)(3, 2, 2) deoarece ambele au una din proprietăţi egală cu 33.

Curioasă să-i testeze abilităţile de alchimist, Regina a ales două pietre din colecţie numerotate cu AA şi BB şi i-a ordonat să facă piatra AA să capete aspectul pietrei BB. Dominic trebuie să îndeplinească sarcina aplicând transformări succesive asupra pietrei AA, căreia îi va schimba proprietățile de fiecare dată. Deoarece regina pare un pic nerăbdătoare, el speră să reuşească folosind un număr cât mai mic de transformări. Dominic vă roagă pe voi să aflaţi dacă porunca reginei poate fi realizată, iar în caz afirmativ, care este numărul minim de transformări necesare în acest sens.

Atenţie! În cazul în care procesul este posibil, aspectele intermediare ale pietrei AA până când ajunge să arate ca BB vor corespunde altor pietre din colecţie.

Cerință

Se dau numărul de teste TT şi pentru fiecare test NN, AA şi BB şi proprietăţilor celor NN nestemate din colecţia lui Dominic. Se cere să se afle numărul minim de transformări necesare (dacă este posibil).

Date de intrare

Prima linie a fişierului de intrare nestemate.in conţine TT, numărul de teste. Pentru fiecare test regăsim pe prima linie numărul întreg NN, pe a doua linie numerele întregi AA şi BB, iar pe următoarele NN linii câte trei valori întregi XX, YY și ZZ descriind nestematele.

Date de ieșire

Fișierul de ieșire nestemate.out trebuie să conțină TT linii, câte una pentru fiecare test dat, conţinând numărul minim de transformări necesare sau −1 dacă procesul nu poate fi realizat.

Restricții și precizări

  • 1T51 \leq T \leq 5;
  • 2N100 0002 \leq N \leq 100 \ 000;
  • 1A,BN1 \leq A, B \leq N și ABA \neq B;
  • 1X,Y,Z,500 0001 \leq X, Y, Z, \leq 500 \ 000;
  • 11 \leq Suma valorilor NN din toate cele TT teste 300 000\leq 300 \ 000;
  • Se garantează că este necesară cel puțin o transformare (pietrele AA și BB nu au același aspect).
# Punctaj Restricții
1 11 Se garantează că, dacă există soluție, se poate ajunge la rezultat prin exact o transformare și N10N \leq 10.
2 13 Se garantează că, dacă există soluție, se poate ajunge la rezultat prin maxim două transformări și N10N \leq 10.
3 16 Se garantează că, dacă există soluție, se poate ajunge la rezultat prin maxim trei transformări și N10N \leq 10.
4 10 N10N \leq 10
5 10 N1 000N \leq 1 \ 000
6 13 Se garantează că o valoare apare în configuraţia a maxim 33 nestemate distincte.
7 27 Fără restricții suplimentare.

Exemplu

nestemate.in

2
4
1 2
2 1 1
5 3 6
4 3 5
3 2 7
4
1 3
2 1 1
2 2 2
4 3 5
2 2 7

nestemate.out

2
-1

Explicație

Pentru primul test se foloseşte nestemata 44 aşa cum este reprezentat în desenul de mai jos pentru a transforma piatra 11 în piatra 22.

Pentru al doilea test procesul de transformare nu poate fi realizat, deci se afişează −1.

Transformarea (2,1,1)(3,2,7)(2, 1, 1) \rightarrow (3, 2, 7) este validă deoarece 2{2,1,1}{3,2,7}2 \in \{2, 1, 1\} \cap \{3, 2, 7\}.
Transformarea (3,2,7)(5,3,6)(3, 2, 7) \rightarrow (5, 3, 6) este validă deoarece 3{3,2,7}{5,3,6}3 \in \{3, 2, 7\} \cap \{5, 3, 6\}.

Log in or sign up to be able to send submissions!