|
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
|