Pagini recente » Cod sursa (job #2322036) | Cod sursa (job #2314404) | Cod sursa (job #419183) | Cod sursa (job #265831) | Cod sursa (job #1148123)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k;
int a[16001];
int main()
{
int i,max=-1,s=0,cod=0,pas,nr,st,j;
f>>n>>k;
for(i=1;i<=n;i++){
f>>a[i];
if(a[i]>max)
max=a[i];
s += a[i];
}
i=0;
pas=max;
while(pas/2>0){
i++;
pas/=2;
}
pas=1<<i;
i=0;
while( pas!=0){
if(i+pas<=s){
nr=1;
st=0;
for(j=1;j<=n;j++){
if(st+a[j]<=i+pas)
st +=a[j];
else{
st=a[j];
nr++;
}
}
if(nr>k)
cod=i+pas;
i +=pas;
}
pas/=2;
}
g<<cod+1<<"\n";
return 0;
}