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: MAP
Autor: Marcin Sawicki
Mapa

Etap III, dzień pierwszy 21 kwietnia 1999
Plik źródłowy: MAP.??? (np. pas, c, cpp)
Plik wykonywalny: MAP.exe
Plik wejściowy: MAP.in
Plik wyjściowy: MAP.out

Po nowym podziale administracyjnym Bajtocji przygotowywana jest mapa demograficzna kraju. Z powodów technicznych do kolorowania mapy można użyć tylko kilku kolorów. Mapę należy pokolorować w taki sposób, żeby gminy o zbliżonym zaludnieniu (tj. liczbie mieszkańców) były pokolorowane tym samym kolorem. Dla danego koloru k niech A(k) będzie taką liczbą, że wśród gmin o kolorze k:

  • co najmniej połowa gmin o kolorze k ma zaludnienie nie większe od A(k)
  • co najmniej połowa gmin o kolorze k ma zaludnienie nie mniejsze od A(k)
Błędem pokolorowania gminy pokolorowanej kolorem k nazywamy wartość bezwzględną różnicy liczby A(k) i zaludnienia gminy. Błędem sumarycznym nazywamy sumę wszystkich błędów pokolorowania. Jak pokolorować mapę, żeby błąd całkowity był najmniejszy?

Zadanie

Napisz program, który:

  • wczyta z pliku wejściowego MAP.IN zaludnienia gmin Bajtocji,
  • obliczy minimalny błąd sumaryczny,
  • zapisze wynik w pliku tekstowym MAP.OUT.

Wejście

W pierwszym wierszu pliku wejściowego MAP.IN znajduje się jedna liczba całkowita n równa liczbie gmin Bajtocji, 10< n <3000. W drugim wierszu jest zapisana liczba m kolorów użyta do pokolorowania mapy, 2 <= m <= 10. W każdym z następnych n wierszy znajduje się po jednej nieujemnej liczbie całkowitej. Są to zaludnienia gmin Bajtocji. Zaludnienie nie przekracza 2^30.

Wyjście

Twój program powinien zapisać w pierwszym i jedynym wierszu pliku wyjściowego MAP.OUT jedną liczbę całkowitą będącą równą minimalnemu błędowi sumarycznemu, jaki można uzyskać przy kolorowaniu mapy.

Przykład

Dla pliku wejściowego MAP.IN:

11
3
21
14
6
18
10
2
15
12
3
2
2
poprawną odpowiedzią jest plik wyjściowy MAP.OUT
15




Wersja do druku