Pagini recente » Cod sursa (job #706106) | Cod sursa (job #2172701) | Cod sursa (job #2946127) | Cod sursa (job #3245975) | Cod sursa (job #613216)
Cod sursa(job #613216)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int i,n,k, a[16001],maxi, suma,sol;
bool verific(int x){
int t=0,i=1,suma;
if x<maxi return false;
while i<=n{
suma=0;
while (i<=n && suma+a[i]<=x){
suma+=a[i];
i++;
}
t++;
}
if t<=k return true;
else return false;
}
int caut_binar(int st,int dr){
int mid=(st+dr)/2;
while st<=dr{
if (verific(mid-1)==true) dr=mid-1;
else if (verific(mid)==true) return mid;
else st=mid+1;
mid=(st+dr)/2;
}
}
int main(){
f >> n >> k;
for (i=1; i<=n; i++){
f >> a[i];
maxi=max(maxi,a[i]);
suma+=a[i];
}
sol=caut_binar(maxi,suma);
g << sol;
f.close();
g.close();
return 0;
}