Sicily 2015 A New Year Gift
来源:互联网 发布:郎咸平 离婚 知乎 编辑:程序博客网 时间:2024/04/30 15:16
#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;}