Pagini recente » Cod sursa (job #239890) | Cod sursa (job #284099) | Cod sursa (job #596771) | Cod sursa (job #655094) | Cod sursa (job #2167049)
#include<fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int N,K,V[16003];
int Check(int Val)
{
int Pas=0,Sum=0;
for(int i=1;i<=N;i++)
{
if(V[i]>Val)
{
Pas=K+5;
break;
}
if(Sum+V[i]>Val)
{
Pas++;
Sum=0;
}
Sum=Sum+V[i];
}
Pas++;
return Pas;
}
int Cautbin()
{
int Left=1,Right=300000000,Mid,Sol;
while(Left<=Right)
{
Mid=(Left+Right)/2;
if(Check(Mid)<=K)
{
Right=Mid-1;
Sol=Mid;
}
else
Left=Mid+1;
}
return Sol;
}
int main()
{
fin>>N>>K;
for(int i=1;i<=N;i++)
fin>>V[i];
fout<<Cautbin()<<'\n';
}