Pagini recente » Cod sursa (job #52666) | Cod sursa (job #381318) | Cod sursa (job #2141549) | Cod sursa (job #766218) | Cod sursa (job #1573977)
#include <iostream>
#include<fstream>
using namespace std;
int s[16005],n,k,suma,maxim;
int nr_transporturi(int mij)
{
int sum=0;
int trans=1;
for(int i=1; i<=n; i++)
{
sum+=s[i];
if(sum>mij)
{
trans++;
sum=s[i];
}
}
return trans;
}
int main()
{
int st,dr,mijloc,rez;
ifstream f("transport.in");
ofstream g("transport.out");
f>>n>>k;
for(int i=1; i<=n; i++)
{
f>>s[i];
suma+=s[i];
maxim=max(maxim, s[i]);
}
f.close();
st=maxim;
dr=suma;
while(st<=dr)
{
mijloc=(st+dr)/2;
if(nr_transporturi(mijloc)<=k)
{
dr=mijloc-1;
rez=mijloc;
}
else
st=mijloc+1;
}
g<<rez;
g.close();
return 0;
}