Pagini recente » Cod sursa (job #32646) | Cod sursa (job #2571085) | Cod sursa (job #1040802) | Cod sursa (job #2710176) | Cod sursa (job #2384214)
#include <fstream>
using namespace std;
int v[16005],n,k,i,s,gr,maxx,st,dr,rez;
ifstream in("transport.in");
ofstream out("transport.out");
void citire()
{
in>>n>>k;
for(i=1; i<=n; i++)
{
in>>v[i];
if(maxx<v[i])
maxx=v[i];
}
}
void prelucrare()
{
st=k;
dr=100000;
while(st<=dr)
{
maxx=(st+dr)/2;
s=0;
gr=0;
for(i=1; i<=n; i++)
{
if(s+v[i]<=maxx)
s=s+v[i];
else
{
s=v[i];
gr++;
}
}
gr++;
if(gr<=k){
dr=maxx-1;
rez=maxx;
}
else{
st=maxx+1;
}
}
}
void printare()
{
out<<rez;
}
int main()
{
citire();
prelucrare();
printare();
return 0;
}