Pagini recente » Cod sursa (job #1369098) | Cod sursa (job #391552) | Cod sursa (job #3241692) | Istoria paginii utilizator/martinmiere133 | Cod sursa (job #1156472)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k;
int a[16001];
int grupe(int x){
int nr,st,j;
nr=1;
st=0;
for(j=1;j<=n;j++){
if(st+a[j]<=x)
st +=a[j];
else{
if(a[j] > x)
return 1;
st=a[j];
nr++;
}
}
if(nr>k)
return 1;
else
return 0;
}
int main()
{
int i,max=-1,s=0,cod=0,pas=1<<30;
f>>n>>k;
for(i=1;i<=n;i++){
f>>a[i];
if(a[i]>max)
max=a[i];
s += a[i];
}
if(k>=n)
g<<max<<"\n";
else{
i=0;
while( pas!=0){
if(grupe(i+pas)==1)
i +=pas;
pas/=2;
}
g<<i+1<<"\n";
}
return 0;
}