Pagini recente » Cod sursa (job #469051) | Cod sursa (job #1082853) | Cod sursa (job #1628237) | Cod sursa (job #1477460) | Cod sursa (job #964386)
Cod sursa(job #964386)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int Volum[16001],N,K;
void Read()
{
f>>N>>K;
int i;
for(i=1;i<=N;i++)
f>>Volum[i];
}
bool Check(int val)
{
int i,partial=0,number_of_transports=0;
for(i=1;i<=N;i++)
{
partial+=Volum[i];
if(Volum[i]>val)
return 0;
if(partial>val)
{
partial=Volum[i];
number_of_transports++;
}
}
number_of_transports++;
if(number_of_transports>K)
return 0;
return 1;
}
void Binary_Search()
{
int st=1,dr=16000*16000,mid,solution=0;
while(st<=dr)
{
mid=(st+dr)/2;
if(Check(mid)==1)
{
solution=mid;
dr=mid-1;
}
else
st=mid+1;
}
g<<solution<<"\n";
}
int main()
{
Read();
Binary_Search();
return 0;
}