Pagini recente » Cod sursa (job #4997) | Solutia problemei shoturi | Cod sursa (job #370853) | Cod sursa (job #389934) | Cod sursa (job #750210)
Cod sursa(job #750210)
#include<fstream>
using namespace std;
#define nmax 16002
int x[nmax],n,k,maxi=0;
int suma=0;
ofstream g("transport.out");
int ajunge(int nr)
{
int su=0,ka=0;
for(int i=1;i<=n;i++)
{
su=su+x[i];
if(su>nr)
{
su=x[i];
ka++;
}
}
//ka++;
if(ka<=k) return 1;
return 0;
}
int caut_bin()
{
int m;
int st=maxi;
int dr=suma;
while(st<=dr)
{
m=(st+dr)/2;
if(ajunge(m))
dr=m-1;
else st=m+1;
}
//m=(st+dr)/2;
return m;
return 0;
}
int main()
{
ifstream f("transport.in");
f>>n>>k;
for(int i=1;i<=n;i++)
{
f>>x[i];
suma=suma+x[i];
if(x[i]>maxi)
maxi=x[i];
}
g<<caut_bin();
}