Pagini recente » Cod sursa (job #2222505) | Cod sursa (job #366193) | Cod sursa (job #1618561) | Cod sursa (job #1310360) | Cod sursa (job #1864369)
#include <iostream>
#include <bitset>
#include <climits>
#include <fstream>
#define dm 15000*16000+1
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int v[dm], n, k;
bool secv(int x)
{
int sum=0, c=1;
for(int i=1; i<=n; i++)
{
sum+=v[i];
if(sum>x) sum=v[i], c++;
}
if(c>k)
return 0;
return 1;
}
int main()
{
int st=0, dr=0, mid=0, last=0;
f>>n>>k;
for(int i=1; i<=n; i++)
{
f>>v[i];
st=max(v[i], st);
}
dr=16000*16000+1;
while(st<=dr)
{
mid=(st+dr)/2;
if(secv(mid))
{
dr=mid-1;
last=mid;
}
else
st=mid+1;
}
g<<last;
return 0;
}