Pagini recente » Cod sursa (job #925270) | Cod sursa (job #2788827) | Cod sursa (job #2512561) | Cod sursa (job #1509516) | Cod sursa (job #2954671)
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int n,cnt_camion;
int v[16005];
int IsOk(int volum)
{
int suma=0,cnt=0;
for(int i=0;i<n;i++)
{
if(suma+v[i]<=volum)
{
suma+=volum;
}
else
{
if(v[i]>volum)
{
return false;
}
else
{
suma=v[i];
cnt++;
}
if(cnt>cnt_camion)
{
return false;
}
}
}
if(cnt>cnt_camion)
return false;
return true;
}
int main()
{
//ifstream cin("abx.in");
//ofstream cout("abx.out");
int st,dr,mij;
cin>>n>>cnt_camion;
for(int i=0;i<n;i++)
{
cin>>v[i];
}
st=0;
dr=16000*16000;
while(st<dr)
{
mij=(st+dr)/2;
///cout<<"mij="<<mij<<"\n";
if(IsOk(mij)==true)
{
dr=mij;
}
else
{
st=mij+1;
}
}
cout<<st+1;
return 0;
}