Pagini recente » Cod sursa (job #2414983) | Cod sursa (job #1076253) | Cod sursa (job #2030972) | Cod sursa (job #1211830) | Cod sursa (job #1239872)
#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 ) ;
long long v [ MAX ] , n , k , sol ;
int verif ( int x )
{
long long 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 ;
long long S = 0 ;
for ( int i = 1 ; i <= n ; ++ i )
{
fin >> v [ i ] ;
S = S + v [ i ] ;
}
long long st = 1 ;
long long dr = S / k ;
while ( st <= dr )
{
long long mij = ( st + dr ) >> 1 ;
if ( verif ( mij ) )
{
st = mij + 1 ;
sol = mij ;
}
else dr = mij - 1 ;
}
fout << sol << '\n' ;
return 0;
}