Pagini recente » Cod sursa (job #2853359) | Cod sursa (job #2790733) | Cod sursa (job #3166931) | Cod sursa (job #914974) | Cod sursa (job #1800736)
#include <fstream>
using namespace std;
ifstream f ("transport.in");
ofstream g ("transport.out");
bool spt (long long x,long long n,long long a[16001],long long k){
long long i=1,nr=1,s=0;
while(i<=n){
if(a[i]>x) return 0;
if(s+a[i]<=x) s=s+a[i];
else{
nr++;
s=a[i];
}
i++;
}
if(nr>k) return 0;
else return 1;
}
long long s,n,k,a[16001],st,dr,i;
long long m,num;
int main()
{
f>>n>>k;
for(i=1;i<=n;i++){
f>>a[i];
s=s+a[i];
}
st=1;
dr=s;
while(st<=dr){
m=(st+dr)/2;
if(spt(m,n,a,k)){
dr=m-1;
}
else st=m+1;
}
g<<dr+1;
}