Pagini recente » Cod sursa (job #789195) | Cod sursa (job #2557801) | Cod sursa (job #1376408) | Cod sursa (job #676213) | Cod sursa (job #728571)
Cod sursa(job #728571)
#include<stdio.h>
FILE *f , *g ;
int n , k , v[16001] , ls , ld = 16000 , rez ;
void citire();
void solve();
void tipar();
int verif(int a);
int main()
{
citire();
solve();
tipar();
return 0;
}
void citire()
{
f=fopen("transport.in" , "r");
fscanf(f , "%d %d" , &n , &k );
for( int i = 1 ; i<= n ; ++i )
{
fscanf(f , "%d" , &v[i] );
if(v[i] > ls)
ls = v[i];
}
fclose(f);
}
void solve()
{
int mijl;
while(ls <= ld )
{
mijl = (ls+ld)/2;
if(verif(mijl) <= k)
ld = mijl-1;
else
ls = mijl+1;
}
}
int verif(int a)
{
int r = 1, s = 0;
for(int i = 1 ; i<= n ; ++i )
if(s+v[i] <= a)
s+=v[i];
else
{
s = v[i];
r++;
}
rez = a;
return r;
}
void tipar()
{
g=fopen("transport.out" , "w" );
fprintf(g , "%d" , rez );
fclose(g);
}