Polish version    English version  
  Historia OI -> IV OI 1996/1997 -> 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
V OI 1997/1998
IV OI 1996/1997
Wyniki III etapu
Wyniki II etapu
Wyniki I etapu
Zadania
Regulamin
Zasady organizacji
Wskazówki
Terminarz
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
IV Olimpiada Informatyczna 1996/97

Zadanie: LOT
Autor: Wojciech Guzicki
LOTNISKA

Zawody II stopnia  
Plik źródłowy: LOT.??? (np. pas, c, cpp)
Plik wykonywalny: LOT.exe
Plik wejściowy: LOT.in
Plik wyjściowy: LOT.out

W państwie X istnieją lotniska w n miastach. Znane są maksymalne "przepustowości" tych lotnisk - lotnisko w mieście Mi może mieć co najwyżej di połączeń lotniczych z innymi miastami. Należy zaplanować sieć połączeń lotniczych między tymi miastami w taki sposób, by miasto Mi miało dokładnie di połączeń z innymi miastami, przy czym zakładamy, że każde połączenie jest dwukierunkowe i każde miasto może mieć z innym tylko jedno połączenie.

Zadanie

Napisz program, który:
  • wczytuje z pliku tekstowego LOT.IN liczbę n miast oraz liczby di,
  • układa sieć połączeń lotniczych, taką że dla każdego i od 1 do n miasto Mi ma dokładnie di połączeń z innymi miastami,
  • zapisuje w pliku LOT.OUT listę wszystkich tworzących sieć połączeń.
Dane są tak dobrane, by rozwiązanie zadania istniało. Jeśli zadanie ma wiele rozwiązań, Twój program powinien znajdować tylko jedno.

Wejście

W pierwszym wierszu pliku tekstowego LOT.IN jest zapisana liczba całkowita n spełniająca nierówność 3 <= n <= 500. Jest to liczba miast.

W kolejnych n wierszach są zapisane liczby całkowite dodatnie di, po jednej w każdym wierszu.

Wyjście

W pliku tekstowym LOT.OUT należy zapisać wszystkie połączenia lotnicze sieci utworzonej przez Twój program. Każde połączenie należy zapisać w osobnym wierszu w postaci dwóch liczb całkowitych dodatnich oddzielonych pojedynczym odstępem, tj. numerów dwóch połączonych miast. Numery miast w wierszu mogą występować w dowolnej kolejności; również kolejność zapisywania połączeń w pliku jest dowolna.

Przykład

Dla pliku LOT.IN
6
2
3
2
4
1
2
przykładem poprawnego rozwiązania jest plik LOT.OUT
5 4
4 2
1 2
2 3
6 3
4 6
4 1

Twój program powinien szukać pliku LOT.IN w katalogu bieżącym i tworzyć plik LOT.OUT również w bieżącym katalogu. Plik zawierający napisany przez Ciebie program w postaci źródłowej powinien mieć nazwę LOT.???, gdzie zamiast ??? należy wpisać co najwyżej trzyliterowy skrót nazwy użytego języka programowania. Ten sam program w postaci wykonalnej powinien być zapisany w pliku LOT.EXE.




Wersja do druku