Cod sursa(job #427783)

Utilizator lianaliana tucar liana Data 28 martie 2010 13:51:39
Problema Grupuri Scor 12
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.06 kb
program grupuri;
var f, g:text;
    k, n, gr:longint;
    ok:boolean;
    v:array[1..100000] of longint;
    s:int64;

procedure citire;
var i:longint;
  begin
    readln(f,k,n);
    for i:=1 to n do
      begin
        read(f,v[i]);
        s:=s+v[i];
      end;
  end;

procedure verificare;
var i, l, sa:longint;
  begin
    l:=0;
    for i:=n downto 1 do
      if v[i]>=gr then
        l:=l+1
       else
         break;
    sa:=0;
    for i:=1 to n do
      if v[i]<gr then
        sa:=sa+v[i]
       else
         break;
    if sa>=(k-l)*gr then
      ok:=true
     else
       ok:=false;
  end;

procedure rezolvare;
var st, dr:longint;
  begin
    st:=1;
    dr:=s div n+1;
    while st<dr-1 {!!!} do
      begin
        gr:=(st+dr) div 2;
        verificare;
        if ok then
          st:=gr
         else
           dr:=gr-1;
      end;
    writeln(g,dr);
  end;

  begin
    assign(f,'grupuri.in'); reset(f);
    assign(g,'grupuri.out'); rewrite(g);
    citire;
    rezolvare;
    close(f);
    close(g);
  end.