Cod sursa(job #1239867)

Utilizator xtreme77Patrick Sava xtreme77 Data 9 octombrie 2014 21:51:06
Problema Grupuri Scor 74
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>

const char IN [ ] = "grupuri.in" ;
const char OUT [ ] = "grupuri.out" ;
const int MAX = 100014 ;

using namespace std;

ifstream fin ( IN ) ;
ofstream fout ( OUT ) ;

int v [ MAX ] , n , k , sol ;

int verif ( int x )
{
    int S = 0 ;
    for ( int i = 1 ; i <= n ; ++ i )
        if ( v [ i ] < x )
            S = S + v [ i ] ;
        else S = S + x ;
    if ( S / k >= x )
        return 1 ;
    return 0 ;
}

int main(              )
{
    fin >> k >> n ;
    int S = 0 ;
    for ( int i = 1 ; i <= n ; ++ i )
    {
        fin >> v [ i ] ;
        S = S + v [ i ] ;
    }
    int st = 1 ;
    int dr = S / k ;
    while ( st <= dr )
    {
        int mij = ( st + dr ) >> 1 ;
        if ( verif ( mij ) )
        {
            st = mij + 1 ;
            sol = mij ;
        }
        else dr = mij - 1 ;
    }
    fout << sol << '\n' ;
    return 0;
}