Pagini recente » Cod sursa (job #1484159) | Cod sursa (job #1605766) | Cod sursa (job #2595512) | Cod sursa (job #1535012) | Cod sursa (job #885901)
Cod sursa(job #885901)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
inline int max(int a, int b)
{
if(a>b) return a;
return b;
}
inline int min(int a, int b)
{
if(a<b) return a;
return b;
}
int n,k;
int a[16001],vmin,vmax;
int ls,ld;
int main()
{
f>>n>>k;
for(int i=1; i<=n; i++)
{f>>a[i]; if(a[i]>ls) ls=a[i];ld+=a[i];}
int mij,i,rez;
while(ls<ld)
{
int s=0, nr=0;
mij=(ls+ld)/2;
for(i=1; i<=n; i++)
{
if(s+a[i]<=mij) s+=a[i];
else
nr++, s=a[i];
if(s)
nr++;
if(nr<=k)
ld=mij-1,rez=mij;
else
ls=mij+1;
}
if(nr<=k)
g<<mij;
else
g<<rez;
}
return 0;
}