Pagini recente » Cod sursa (job #1894115) | Cod sursa (job #574122) | Cod sursa (job #1521241) | Cod sursa (job #2382913) | Cod sursa (job #1259700)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
long long n,k,i,a[16600],poz,mx,s;
long long trans(long long x){
int s=0,t=1,r=0,i=1;
while(i<=n){
s = x;
if(a[i] <= s){
while(a[i] <= s){
s = s - a[i];
i++;
}
r++;
}
}
if(r <= k) return 1;
return 0;
}
int caut(int st,int dr)
{
int mij,sol;
while (st<=dr)
{
mij=(st+dr)/2;
if (trans(mij))
{
sol=mij;
dr=mij-1;
}
else
st=mij+1;
}
return sol;
}
int main()
{
f >> n >> k;
for(i = 1; i <= n; i++){
f >> a[i];
if(a[i] > mx) mx = a[i];
s += a[i];
}
g<<caut(mx,s);
return 0;
}