Polish version    English version  
  Historia OI -> VI OI 1998/1999 -> Zadania


 Aktualności
 O olimpiadzie
 Komitety
 XVIII OI 2010/2011
 Historia OI
XVII OI 2009/2010
XVI OI 2008/2009
XV OI 2007/2008
XIV OI 2006/2007
XIII OI 2005/2006
XII OI 2004/2005
XI OI 2003/2004
X OI 2002/2003
IX OI 2001/2002
VIII OI 2000/2001
VII OI 1999/2000
VI OI 1998/1999
Wyniki III etapu
Wyniki II etapu
Wyniki I etapu
Zadania
Regulamin
Zasady organizacji
Wskazówki
Terminarz
Statystyki
V OI 1997/1998
IV OI 1996/1997
III OI 1995/1996
II OI 1994/1995
I OI 1993/1994
 Książeczki OI
 Reprezentacja
 Obozy Olimpiady
 Galeria zdjęć
 Ciekawe odsyłacze
 OIG LiveCD
 IV OIG 2009/2010
 Historia OIG
 SIO
 MAIN
VI Olimpiada Informatyczna 1998/99

Zadanie: RAK
Autor: Wojciech Rytter
Rakiety

Etap II, dzień próbny 9 lutego 1999
Plik źródłowy: RAK.??? (np. pas, c, cpp)
Plik wykonywalny: RAK.exe
Plik wejściowy: RAK.in
Plik wyjściowy: RAK.out

Na płaskiej mapie wyznaczono dwa rozłączne, n-elementowe zbiory punktów: R i W. Żadne trzy punkty ze zbioru R W nie są współliniowe. W punktach ze zbioru R rozlokowane są rakiety typu ziemia-ziemia, natomiast w punktach ze zbioru W znajdują się obiekty wroga, które trzeba zniszczyć. Rakiety mogą lecieć jedynie w linii prostej, a tory rakiet nie mogą się przecinać. Chcemy dla każdej rakiety wyznaczyć cel, który powinna zniszczyć.

Zadanie

Napisz program, który:
  • wczytuje z pliku tekstowego rak.in współrzędne punktów ze zbiorów R i W,
  • wyznacza zbiór n parami nie przecinających się odcinków i takich, że jeden koniec każdego odcinka należy do zbioru R, podczas gdy drugi należy do zbioru W,
  • zapisuje wynik w pliku tekstowym rak.out.

Wejście

W pierwszym wierszu pliku tekstowego rak.in jest zapisana jedna liczba naturalna n, 1<=n<=10000, równa liczności zbiorów R i W.

W każdym z kolejnych 2n wierszy pliku rak.in jest zapisana para liczb całkowitych z przedziału [-10000,10000] oddzielonych pojedynczym odstępem. Są to współrzędne punktu na płaszczyźnie (najpierw współrzędna x, potem współrzędna y). Pierwsze n z tych wierszy zawiera współrzędne punktów ze zbioru R, natomiast ostatnie n wierszy zawiera współrzędne punktów ze zbioru W. W wierszu o numerze i+1 znajdują się współrzędne punktu r i, natomiast w wierszu o numerze i+n+1 znajdują się współrzędne punktu w i, 1 i n.

Wyjście

Plik rak.out powinien składać się z n wierszy. W i-tym wierszu należy zapisać jedną liczbę naturalną k i taką, że odcinek r i w k i należy do wyznaczonego zbioru odcinków (innymi słowy, że rakieta z punktu r i ma zniszczyć obiekt położony w punkcie w k i ).

Przykład

Dla pliku wejściowego rak.in
4
0 0
1 5
4 2
2 6
1 2
5 4
4 5
3 1
poprawną odpowiedzią jest na przykład plik rak.out:
2
1
4
3



Wersja do druku