Pagini recente » Cod sursa (job #2362680) | Cod sursa (job #268679) | Cod sursa (job #904265) | Cod sursa (job #1366490) | Cod sursa (job #1447460)
#include <fstream>
using namespace std;
ifstream f ("transport.in");
ofstream g ("transport.out");
int n , k , sum , a[17000] , maxi;
void caut_bin();
int verif(int x);
int main()
{
int i ;
f >> n >> k;
for(i = 1 ; i <= n ; ++i){
f >> a[i];
sum += a[i];
maxi = max (maxi , a[i]);
}
caut_bin();
return 0;
}
void caut_bin(){
int i = 0 , p = 0 ;
for(i = 1 ; i <= sum ; i*=2);
while(i >= maxi){
if(verif(p + i) > k){
p += i ;
}
i /= 2;
}
++p;
if(p < maxi)
g << maxi;
else
g << p;
}
int verif(int x){
int i , s = 0 , nr = 1;
for(i = 1 ; i <= n ; ++i){
if(s + a[i] <= x){
s += a[i] ;
}
else{
s = a[i];
++nr;
}
}
return nr;
}