Pagini recente » Cod sursa (job #1497583) | Cod sursa (job #2776079) | Cod sursa (job #1807671) | Cod sursa (job #367838) | Cod sursa (job #2002577)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int n,k,v[16000],max_saltea=0,suma_vol=0,i,mid,s,ki;
ifstream f ("transport.in");
ofstream g("transport.out");
f>>n>>k;
for(i=0;i<n;i++)
{ f>>v[i];
if(v[i]>max_saltea)
max_saltea=v[i];
suma_vol=suma_vol+v[i];}
do
{
mid=(max_saltea+suma_vol)/2;
s=0;
ki=1;
for(i=0;i<n;i++)
{
s=s+v[i];
if(s>mid){ki++;
s=v[i];}
}
if(ki>k)
max_saltea=mid+1;
else
suma_vol=mid;
}while(max_saltea<suma_vol);
g<<suma_vol;
return 0;
}