1 solutions
-
0
C++ :
#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; }
Python :
n=int(input()) a=[] sr=input().split() for i in range(n): a.append(int(sr[i])) a=sorted(a) a.reverse() m=int(input()) da=a[0] while(da>=1): s=0 for i in range(n): s=s+a[i]//da if(s>=m): break else: da=da-1 if(da>=1): print(da) else: print("Failed")
- 1
Information
- ID
- 10409
- Time
- 1000ms
- Memory
- 16MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By