Pagini recente » Cod sursa (job #2115663) | Cod sursa (job #2911965) | Cod sursa (job #705755) | Cod sursa (job #339818) | Cod sursa (job #1229577)
#include<fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int n,k,v[20000];
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;
}
int 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;
else
left = mid +1 ;
}
return mid;
}
int main()
{
in>>n>>k;
for(int i = 1 ; i <= n ; i++)
in>>v[i];
out<<bin_search(1,16000,k);
in.close();
out.close();
return 0;
}