Pagini recente » Cod sursa (job #3181890) | Cod sursa (job #2635552) | Cod sursa (job #2249208) | Cod sursa (job #2668836) | Cod sursa (job #2101672)
#include <bits/stdc++.h>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int v[16001] , n , k ,maxim, sus;
void c()
{
in >> n >> k;
for ( int i =1 ; i <= n ; ++i)
{in >> v[i];
maxim=max(maxim,v[i]);
sus+=v[i];
}
}
bool mere( int valoare )
{ int sp=0; int aux = 1 ;
for ( int i =1 ; i <= n ; ++ i)
{
if (sp+v[i]<=valoare)sp+=v[i];
else {
sp=v[i];
++ aux;
if (aux>k) return false;
}
}
return true;
}
int caut_bin( int left, int right)
{
int m = (left+right) / 2 ;
if (left==right) return left;
if ( mere(m) ) caut_bin(left,m);
else caut_bin(m+1,right);
}
int main()
{c();
out << caut_bin(maxim,sus);
return 0 ;
}