Pagini recente » Cod sursa (job #3273132) | Cod sursa (job #2637781) | Cod sursa (job #3259381) | Cod sursa (job #2480010) | Cod sursa (job #2454336)
#include <bits/stdc++.h>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
long long v[16001];
bool posibil(int total_transport, int capacitate, int transporturi)
{
int elem=0,i,k;
for(i=1;i<=transporturi;i++)
{
int cap_aux=capacitate;
while(cap_aux-v[elem]>=0)
{
cap_aux-=v[elem];
total_transport-=v[elem];
elem++;
}
}
return (total_transport<=0);
}
int caut_bin(int st, int dr, int s, int k)
{
int mij;
while(st<dr)
{
mij=(st+dr)/2;
if(posibil(s,mij,k))
dr=mij;
else
st=mij+1;
}
return st;
}
int main()
{
long long i,n,k,maxi=0,trans=0,c;
in>>n>>k;
for(i=1;i<=n;i++)
{
in>>v[i];
trans+=v[i];
maxi=max(maxi,v[i]);
}
out<<caut_bin(maxi,trans,trans,k);
return 0;
}