Ana și Bogdan desenează fiecare câte puncte laticiale (cu coordonate întregi) în planul . Punctele Anei sunt notate cu , iar cele ale lui Bogdan cu .
Bogdan observă o proprietate interesantă: pentru orice de la la , punctul său este centrul de greutate al triunghiului format de punctul al Anei și de alte două puncte ale sale, și (unde ).
Într-un moment de neatenție, Ana șterge punctele desenate de Bogdan. Acum, el trebuie să le reconstruiască, știind doar coordonatele punctelor și relațiile descrise mai sus (perechile de indici și ).
Cerință
Dându-se punctele și perechile de indici pentru fiecare , \ determinați coordonatele punctelor .
Detalii de implementare
Veți avea de implementat o singură funcție:
std::vector<std::pair<long long, long long>> solve(
int N,
std::vector<std::pair<long long, long long>> p,
std::vector<int> a, std::vector<int> b);
Funcția solve se apelează de comisie o singură dată și primește ca parametri:
- : numărul de puncte desenate de Ana;
- : coordonatele celor puncte desenate de Ana (indexate de la );
- și : reprezentând perechile de indici pentru fiecare proprietate
și trebuie să returneze un șir de perechi, dat de coordonatele punctelor .
Restricții
- , pentru
- , , pentru
- Toate perechile neordonate sunt distincte două câte două
- coordonatele punctelor , pentru
- coordonatele punctelor , pentru
- Se garantează că triunghiurile din proprietăți nu sunt degenerate
- Se poate demonstra că există o soluție unică pentru determinarea punctelor
- Laturile (bazele celor triunghiuri) formează împreună o singură figură geometrică continuă.
O figură geometrică este continuă dacă, oricum am alege două puncte și , există o secvență de puncte care respectă următoarele proprietăți:
- , ;
- Pentru orice , există o pereche neordonată în input care coincide cu .
| # | Punctaj | Restricții |
|---|---|---|
| 1 | 2 | |
| 2 | 7 | |
| 3 | 14 | |
| 4 | 12 | coordonatele , , pentru |
| 5 | 24 | - impar, laturile formează un poligon |
| 6 | 22 | Date de intrare generate aleator |
| 7 | 19 | Fără restricții suplimentare. |
Exemplul 1
input
4
3 2
7 3
6 7
2 6
2 3
3 0
0 1
output
4 4
5 4
5 5
4 5
Explicație
Pentru primul exemplu, desenul este redat în imaginea de mai jos.
Punctele Anei sunt notate cu , iar cele ale lui Bogdan cu .

Exemplul 2
input
3
399999993 599999990
1 200000002
200000017 26
1 2
2 0
0 1
output
250000001 350000002
150000003 250000005
200000007 200000011