Pagini recente » Cod sursa (job #2770097) | Cod sursa (job #1408414) | Cod sursa (job #414126) | Cod sursa (job #2770726) | Cod sursa (job #350228)
Cod sursa(job #350228)
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
#define pb push_back
#define INF 1000000
vector <int> A;
int N,K;
bool solve(int x)
{
int sum,i,j=0;
for (i=0;i<K;i++)
{
sum = 0;
while (sum + A[j] <= x && j<N)
sum += A[j++];
if (j==N)
return true;
}
return false;
}
int bin()
{
int lo,hi,mid,last = -1;
for (lo = 1, hi = 16000*16000; lo <= hi;)
{
mid = lo + (hi - lo) / 2;
//printf("%d\n",mid);
if (solve(mid))
{
last = mid;
hi = mid - 1;
}
else
lo = mid + 1;
}
return last;
}
int main()
{
int i,M,a,x;
char buf[100];
long sum=0;
freopen("transport.in", "rt", stdin);
freopen("transport.out", "wt", stdout);
scanf("%d %d",&N,&K);
// printf("%d %d\n",N,K);
for (i=0;i<N;i++)
{
scanf("%d",&a);
A.pb(a);
}
printf("%d\n",bin());
return 0;
}