#include <iostream>
using namespace std;
#include <cstring>
#include <algorithm>
#include <cstdio>
const int maxn=20005;
int a[maxn];
int n,m;
int Binary_search( int st, int ed ) {
if ( st>ed )
return -1;
int mid=(st+ed)/2;
int i,j,k;
i=n-1;
j=0;
k=0;
bool u=true;
while ( u&&i>=0 ) {
if ( a[i]>=mid ) {
j++;
i--;
}
else {
k+=a[i];
j+=k/mid;
k%=mid;
i--;
}
if ( j>=m )
u=false;
}
if ( u ) {
return Binary_search( st,mid-1 );
}
else {
int p=Binary_search(mid+1,ed);
if ( p==-1 )
return mid;
else
return p;
}
}
int main()
{
scanf( "%d",&n );
int i,nn;
while ( n!=0 ) {
nn=0;
for ( i=0;i<n;i++ ) {
scanf( "%d",&a[i] );
if ( nn<a[i] ) {
nn=a[i];
}
}
scanf( "%d",&m );
sort(a,a+n);
int t=Binary_search(1,n*nn);
if (t==-1)
cout << 0 << endl;
else
cout << t << endl;
cin >> n;
}
return 0;
}
Sicily 2015 A New Year Gift
最新推荐文章于 2019-11-03 20:31:44 发布