Pagini recente » Cod sursa (job #806367) | Cod sursa (job #2375193) | Cod sursa (job #895457) | Cod sursa (job #786802) | Cod sursa (job #1009127)
#include<fstream>
using namespace std;
int v[16002];
int verificare(int nr, int k,int n){
int i=1,s=0,pok=0;
for(i=1;i<=n;i++){
s+=v[i];
if(s>nr){
pok++;
s=v[i];
}
}
if(pok>k) return 0;
else return 1;
}
int main(){
ifstream in("transport.in");
ofstream out("transport.out");
int i,s=0,p=0,k,n,mx=0,rasp=0;
in>>n>>k;
for(i=1;i<=n;i++){
in>>v[i];
}
int stanga=1, dreapta=16000, loc;
while(dreapta-stanga>1){
if(verificare((stanga+dreapta)/2, k, n)==0){
stanga=(stanga+dreapta)/2;
}
else dreapta=(stanga+dreapta)/2;
}
out<<dreapta+1;
in.close();
out.close();
return 0;
}