#include <bits/stdc++.h> using namespace std; int len[100]; // 绳子长度 int n,m,i,lbound,ubound,mid; int main() { cin>>n; int count = 0; for (i = 0; i < n; i++) { cin>>len[i]; count = count + len[i]; } cin>>m; if (count < m) { cout<<"Failed"<<endl; return 0; } lbound = 1; ubound = 1000000; while (lbound < ubound) { mid = (lbound + ubound + 1) / 2; count = 0; for (i = 0; i < n; i++) count = count + len[i] / mid; if (count < m) ubound = mid - 1; else lbound = mid; } cout<<lbound<<endl; return 0; } /************************************************************** Problem: 1413 User: admin Language: C++ Result: Accepted Time:18 ms Memory:2072 kb ****************************************************************/