Polish version    English version  
  XVIII OI 2010/2011


 Aktualności
 O olimpiadzie
 Komitety
 XVIII OI 2010/2011
Terminarz
Zadania
II Etap
Przepisy
Wyniki I etapu
Wyniki II etapu
Dla zawodników
Przydatne zasoby
 Historia OI
 Książeczki OI
 Reprezentacja
 Obozy Olimpiady
 Galeria zdjęć
 Ciekawe odsyłacze
 OIG LiveCD
 IV OIG 2009/2010
 Historia OIG
 SIO
 MAIN
XII Olimpiada Informatyczna 2004/2005

Zadanie: sko

Skoczki

Zawody I stopnia  
Plik źródłowy: sko.xxx (xxx=pas,c,cpp)
Limit pamięci: 32 MB

Alternatywne formaty: PostScript | PDF

Skoczek porusza się po nieskończonej szachownicy. Każdy z ruchów, jakie może wykonać skoczek, można opisać parą liczb całkowitych - para (a,b) odpowiada możliwości wykonania ruchu z pola o współrzędnych (x,y) na pole (x+a,y+b) lub (x-a,y-b). Dla każdego skoczka określony jest zestaw takich par, opisujących ruchy jakie może wykonywać skoczek. Zakładamy, że wszystkie pola, na które może ruszyć się skoczek z pola (0,0) nie leżą na jednej prostej.

Powiemy, że dwa skoczki są równoważne, jeżeli dla obu skoczków zbiory pól, do jakich mogą dotrzeć z pola (0,0) (być może w wielu ruchach) są takie same. (Przy czym równoważne skoczki mogą docierać do tych pół w różnych liczbach kroków). Można pokazać, że dla każdego skoczka istnieje równoważny mu skoczek, którego ruchy są opisane za pomocą tylko dwóch par liczb.

Zadanie

Napisz program, który:

  • wczyta ze standardowego wejścia pary liczb całkowitych opisujące ruchy skoczka,
  • wyznaczy dwie pary liczb całkowitych opisujące skoczka równoważnego danemu skoczkowi, 
  • wypisze wyznaczone dwie pary liczb na standardowe wyjście.

Wejście

W pierwszym wierszu standardowego wejścia zapisana jest jedna liczba całkowita n, liczba par liczb opisujących ruchy danego skoczka, 3 <= n <= 100. W kolejnych n wierszach zapisane są pary liczb opisujące ruchy danego skoczka, po jednej w wierszu. W każdym z tych wierszy zapisane są po dwie liczby całkowite a_i i b_i oddzielone pojedynczym odstępem, -100 <= a_i, b_i <= 100. Zakładamy, że (a_i,b_i) <> (0,0)

Wyjście

W pierwszym wierszu standardowego wyjścia należy wypisać dwie liczby całkowite a i b oddzielone pojedynczym odstępem, $-10.000 <= a, b <= 10.000. W drugim wierszu należy zapisać dwie liczby całkowite c i d oddzielone pojedynczym odstępem, -10.000 <= c, d <= 10.000. Powinny to być takie liczby całkowite, że skoczek, którego ruchy są opisane parami (a,b) i (c,d) jest równoważny skoczkowi opisanemu w danych wejściowych.

Przykład

Dla danych wejściowych:

3
24 28
15 50
12 21

prawidłową odpowiedzią jest:

468 1561
2805 9356

lub:

3 0
0 1



Wersja do druku