TAKMIČENJA IZ PROGRAMIRANJA


Sva pitanja, predloge ili primedbe u vezi sa takmičenjima iz programiranja možete slati na e-mail:

tak.prog@gmail.com

U toku perioda za žalbe, sve žalbe možete slati na ovaj isti e-mail.

puberaks.pas    683 b      izvorni kod rešenja
puberaks.tests.rar    125,876 b      test primeri

zadatak: Puberaks

Proka Pronalazač dugo je živeo sam, ali se ovih dana konačno oženio! Odjednom mu je proradio puberaks, te je sve obavio na brzinu, i još brže dobio n-oro divne dečice. Proka smatra da je pravljenje razlike među decom najbolji način za njihovo odgajanje (prema njegovom misljenju, to podstiče zdravu konkurenciju). Jasno nam je da se većina roditelja neće složiti s njim, ali ne treba mu zameriti, ipak je on već zašao u godine a ovo je za njega sasvim novo iskustvo. Evo, baš danas je prodao najnoviji pronalazak i odmah je izdvojio deo zarađenog novca koji će dati deci za džeparac. No, kada je izbrojao izdvojene novčanice, primetio je da ih ima upravo n (dakle, isto koliko i dece), kao i da su sve međusobno različitih vrednosti. Tada mu je pala na pamet sledeća ideja: odlučio je da svakom detetu taman da po jednu; štaviše, da bi napravio još veću razliku među decom, odlučio je da ih podeli u dve grupe takve da se prosek džeparca u jednoj grupi što više razlikuje od proseka džeparca u drugoj grupi. Upravo ovde vi uskačete da pomognete Proki.

Ulaz:

(Ulazni podaci se učitavaju iz datoteke puberaks.in.) U prvom redu ulazne datoteke nalazi se broj Prokine dece, što je ujedno i broj novčanica predviđenih za džeparac, n (1 ≤ n ≤ 10.000 - Proka baš nije gubio vreme!). U idućem redu nalazi se n prirodnih brojeva u rasponu od 1 do 50.000.000, razdvojenih prazninom: to su vrednosti novčanica koje je Proka izdvojio za džeparac.

Izlaz:

(Izlazni podaci se ispisuju u datoteku puberaks.out.) U prvi i jedini red izlazne datoteke upisati razliku između proseka džeparca u prvoj i drugoj grupi, zaokruženu na dve decimale.

Primer:

puberaks.in      puberaks.out
5
20 50 10 60 70
        
45.00

Objašnjenje.

Deca su podeljena u dve grupe na sledeći način: dvoje dece čine jednu grupu, troje dece čine drugu. Dvoje dece iz prve grupe dobijaju novčanice u vrednosti od 10 i 20 novčanih jedinica, dok deca iz druge grupe dobijaju tri preostale novčanice. Tada je prosek džeparca u prvoj grupi jednak 15, dok je prosek džeparca u drugoj grupi jednak 60, te razlika između ova dva proseka iznosi 45. Može se proveriti da se nikakvom drugačijom podelom ne može postići veća razlika.

Napomena.

U svakoj grupi mora se nalaziti bar po jedno dete (tj., grupa se ne može sastojati od 0 dece).

fajl: puberaks.pas
var n,i,j,s,s1,pom:longint;
    pr:double;
    a:array[1..10000] of longint;
    f:text;
begin
 assign(f,'puberaks.in');
 reset(f);
 readln(f,n);
 for i:=1 to n do
   read(f,a[i]);
 close(f);
 for i:=1 to n do
   for j:=i+1 to n do
     if a[i]>a[j] then begin
                        pom:=a[i];
                        a[i]:=a[j];
                        a[j]:=pom;
                       end;
 s:=0;
 s1:=0;
 for i:=1 to n do
   s1:=s1+a[i];
 pr:=0;
 for i:=1 to n-1 do
   begin
    s:=s+a[i];
    s1:=s1-a[i];
    if s1/(n-i)-s/i>pr then pr:=s1/(n-i)-s/i;
   end;
 assign(f,'puberaks.out');
 rewrite(f);
 writeln(f,pr:0:2);
 close(f);
end.