Pagini recente » Cod sursa (job #2487922) | Cod sursa (job #2671303) | Cod sursa (job #1906211) | Cod sursa (job #873825) | Cod sursa (job #1229618)
#include<fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int n,k,v[20000],sol,maxim;
int nr_transport(int capacitate)
{
int suma = 0,i = 1,sol = 0;
while(i <= n )
{
if(suma + v[i] > capacitate)
{
sol++;
suma = v[i];
}
else{
suma+=v[i];
}
i++;
}
sol++;
return sol;
}
void bin_search(int left,int right,int val)
{
int mid,now;
while(left <= right)
{
mid = (left+right)/2;
now = nr_transport(mid);
if(now <= val){
right = mid -1;
sol = mid;
}
else
left = mid +1 ;
}
}
int main()
{
in>>n>>k;
int s = 0;
for(int i = 1 ; i <= n ; i++){
in>>v[i];
s+= v[i];
maxim = max(maxim,v[i]);
}
bin_search(maxim,s,k);
out<<sol;
in.close();
out.close();
return 0;
}