Pagini recente » Cod sursa (job #1514123) | Cod sursa (job #1305229) | Cod sursa (job #1285277) | Cod sursa (job #787766) | Cod sursa (job #428935)
Cod sursa(job #428935)
#include<fstream.h>
ifstream f("transport.in");
ofstream g("transport.out");
int v[16010], n, k, p ,i;
int suma, u, m, max;
int pot(int c){
int nr=1, cc=0;
for(int i=1;i<=n;i++){
if(cc+v[i]<=c)
cc+=v[i];
else{
nr++;
cc=v[i];
}
}
if(nr>k) return 0;
else
return 1;
}
int main(){
f>>n>>k;
for(i=1;i<=n;i++){
f>>v[i];
suma+=v[i];
if(v[i]>max) max=v[i];
}
p=max; u=suma;
while(p<=u){
m=(p+u)/2;
if(pot(m))
u=m-1;
else
p=m+1;
}
g<<p;
f.close();
g.close();
return 0;
}