Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | disconnect.in, disconnect.out | Sursă | Algoritmiada 2015 Runda 1 |
Autor | Adrian Vladu | Adăugată de | |
Timp execuţie pe test | 0.75 sec | Limită de memorie | 65536 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Disconnect
Poveste şi cerinţă...
Date de intrare
Fişierul de intrare disconnect.in va conţine pe prima linie numerele N şi M, semnificând numărul de noduri, respectiv numărul de operaţii care se vor efectua asupra arborelui. Următoarele N - 1 linii conţin câte o pereche de numere X Y, semnificând faptul că există o muchie neorientată între nodurile X şi Y. Următoarele M linii conţin câte trei numere tip X Y. Acestea descriu o operaţie, după cum urmează:
int XOR = 0;
for (int i = 0; i < M; ++i) {
int type, x, y; cin >> type >> x >> y;
x ^= XOR;
y ^= XOR;
if (type == 1) {
T.removeEdge(x - 1, y - 1);
} else
if (T.query(x - 1, y - 1)) {
cout << "YES\n";
XOR = x;
} else {
cout << "NO\n";
XOR = y;
}
}
Date de ieşire
În fişierul de ieşire disconnect.out ...
Restricţii
- ... ≤ ... ≤ ...
Exemplu
disconnect.in | disconnect.out |
---|---|
This is some text written on multiple lines. | This is another text written on multiple lines. |
Explicaţie
...