1 solutions
-
0
C++ :
#include <iostream> #include <cstdio> #include <cstring> #define Maxn 100002 #define INF 1000000000 using namespace std; long long n,k,a[Maxn]={0}; long long s[Maxn]={0},f[Maxn]={0}; void init() { ios::sync_with_stdio(false); cin>>n>>k; for(int i=1;i<=n;i++) { cin>>a[i]; s[i]=s[i-1]+a[i]; } s[n+1]=INF*2+1; } int Dp(int mid) { int i=0,j=0; for(int x=1;x<=k;x++) { while(s[j]-s[i]<=mid) j++; j--; if(j>=n) return x; i=j; } return (INF+1); } void work() { int l=0,r=INF; while(l<=r) { int mid=(l+r)>>1; if(Dp(mid)<=k) r=mid-1; else l=mid+1; } cout<<l<<endl; } int main() { init(); work(); return 0; }
- 1
Information
- ID
- 726
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By