Pagini recente » Cod sursa (job #525340) | Cod sursa (job #2661188) | Cod sursa (job #344730) | Cod sursa (job #1417865) | Cod sursa (job #1026763)
#include <fstream>
using namespace std;
int v[16001],n,k;
int verif(int cap)
{
int i;
int dr=1,sal=0;
for(i=1;i<=n;i++)
if(v[i]+sal<=cap)
sal+=v[i];
else
{
dr++;
i--;
sal=0;
}
if(dr<=k)
return 1;
return 0;
}
int cauta(int st,int dr)
{
if(st>dr)
return st;
int mij=(st+dr)/2;
if(verif(mij))
return cauta(st,mij-1);
else
return cauta(mij+1,dr);
}
int main()
{
int max1,i,s;
ifstream fin("transport.in");
ofstream fout("transport.out");
max1=0;
s=0;
fin>>n>>k;
for(i=1;i<=n;i++)
{
fin>>v[i];
s+=v[i];
if(max1<v[i])
max1=v[i];
}
fin.close();
fout<<cauta(max1,s);
return 0;
}