1 solutions
-
0
C++ :
#include<bits/stdc++.h> using namespace std; int n,m,a[200005]; long long sum,ans; bool check(long long x) { long long k=0; int h=0; for(int i=1;i<=n;i++) { if(k+a[i]<=x) k+=a[i]+1; else { h++; k=a[i]+1; } } if(k>0) h++; if(h<=m) return true; else return false; } int main(){ cin>>n>>m; for(int i=1;i<=n;i++) { cin>>a[i]; sum+=a[i]; } long long l=1,r=sum+1,mid; while(l<r) { mid=(l+r)/2; if(check(mid)) { ans=mid; r=mid; } else l=mid+1; } cout<<ans; return 0; }
- 1
Information
- ID
- 1006
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 10
- Tags
- # Submissions
- 8
- Accepted
- 2
- Uploaded By