Pagini recente » Cod sursa (job #1824504) | Cod sursa (job #285793) | Cod sursa (job #529873) | Cod sursa (job #882355) | Cod sursa (job #1239867)
#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;
}