Alex şi Lorena se află pe o linie infinită. Pe linie se află oglinzi fixe, fiecare la o poziţie exprimată printr-un număr întreg. În fiecare pas amândoi aleg câte o oglindă (aceiași sau diferită) şi se oglindesc simultan: dacă o persoană se află în poziţia şi se oglindeşte în oglinda aflată la poziţia , atunci noua poziţie va fi . Cu alte cuvinte, este simetricul lui faţă de . Fiind suflete pereche, Alex și Lorena își doresc să ajungă pe aceeași poziție pentru a fi de nedăspărțiți. Pot aceștia să realizeze acest lucru după un număr finit de pași?
Cerință
Scrieți un program care determină, pentru mai multe scenarii, dacă Alex și Lorena pot ajunge pe aceiași poziție după un număr finit de pași. Pentru cerința se garantează că vom avea 2 oglinzi. Pentru cerința 2 vor fi cel puțin 2 oglinzi.
Date de intrare
Pe prima linie a fișierului oglinzifermecate.in
se află reprezentând cerința care trebuie rezolvată
Pentru urmează un număr întreg reprezentând numărul de scenarii.
- Pentru fiecare dintre cele scenarii, se dau patru numere întregi:
- și sunt pozițiile inițiale ale lui Alex și Lorena.
- și sunt pozițiile celor două oglinzi fixe.
Pentru urmează un număr întreg reprezentând numărul de scenarii.
- Pentru fiecare dintre cele scenarii, se dau trei numere întregi:
- Pe următoarea linie se află k numere naturale
- și sunt pozițiile inițiale ale lui Alex și Lorena.
- este pozția oglindei cu indicele .
Date de ieșire
Pe feicare linie a fișierului de ieșire oglinzifermecate.out
se va găsi fie mesajul DA (dacă cei doi pot ajunge pe aceiași pozție), fie NU (dacă cei doi nu pot ajunge pe aceiași poziție).
Restricții și precizări
- Pentru teste în valoare de 10 puncte ,
- Pentru teste în valoare de 10 puncte
- Pentru teste în valoare de 10 puncte
- Pentru teste în valoare de 20 puncte
reprezintă suma k-urilor pe întreg testul - Pentru teste în valoare de 10 puncte ,
- Pentru teste în valoare de 10 puncte
- Pentru teste în valoare de 10 puncte
- Pentru teste în valoare de 20 puncte
Atenție! Două oglinzi se pot afla pe aceleași poziții!
Exemplul 1
oglinzifermecate.in
1 4
0 6 2 4
0 8 2 4
1 10 5 6
0 6 9 10
oglinzifermecate.out
NU
DA
NU
DA
Explicație
Pentru primul scenariu, la primul pas putem alege ca Alex (poziția ) să se oglindească cu oglinda de pe , iar Lorena (poziția ) să se oglindească cu oglinda de poziția . Cei doi ajung pe pozițiile . Se poate arăta că după oricâți pași cei doi nu se vor putea întâlni.
Pentru scenariul 2, cei doi se află la pozițiile . După un pas ei pot ajunge pe pozițiile . După al doilea pas ei pot ajunge pe pozițiile .
Exemplul 2
oglinzifermecate.in
2
5
15 9 3
11 15 1
15 7 4
16 4 0 8
9 9 13
8 12 8 8 0 12 4 0 4 16 8 8 16
5 5 11
12 12 8 4 16 4 0 12 0 4 16
19 12 5
0 1 7 2 16
oglinzifermecate.out
NU
DA
DA
DA
NU
Explicație
Pentru scenariile 3 și 4 cei doi se află de la bun început pe aceleași pozitii, deci răspunsul este DA.