Pagini recente » Cod sursa (job #1182906) | Cod sursa (job #1173606) | Cod sursa (job #2132675) | Cod sursa (job #1430694) | Cod sursa (job #633946)
Cod sursa(job #633946)
#include <fstream>
#include <iomanip>
#include <iostream>
#include <math.h>
using namespace std;
fstream fin("transport.in",ios::in);
fstream fout("transport.out",ios::out);
int main()
{
int n,k,i,j,v[16010],maxim,kaux,sum,ok=0,smax=0,l;
fout<<n;
for (i=1;i<=n;i++) {
fin<<v[i];
if (maxim<v[i]) maxim = v[i];
smax+=v[i];
}
while (!ok){
kaux = 0; sum = 0; ok=1; l=(maxim+sum)/2;
for (j=1;j<=n;j++){
if (sum+v[j]>l){
sum=v[j]; kaux++;
if (kaux>k){
ok=0; break;
}
}else sum+=v[j];
}
// Cautare binara
if ((ok)&&(maxim+1==sum)) fout<<l;
else if (ok){
sum=l;
}else{
maxim=l+1;
}
}
fin.close(); fout.close();
return 0;
}