Pagini recente » Cod sursa (job #3250095) | Cod sursa (job #2120552) | Cod sursa (job #1044406) | Cod sursa (job #245258) | Cod sursa (job #2669328)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n, v[16001],cv[16001],i,maxim=0,k,sum=0, drum=0, found=0,cat;
int main()
{
fin>>n>>k;
for(i=1;i<=n;i++){
fin>>v[i];
cv[i]=v[i];
if(maxim<v[i]) maxim=v[i];
sum+=v[i];
}
if(sum%k==0)
cat = sum/k;
else
cat = sum/k+1;
//fout<<sum<<" "<<cat<<endl;
if(maxim < cat) maxim = cat;
// fout<<maxim<<endl;
while(found==0){
i=1; drum=0;
while (drum<k){
sum=0;
while (i<n && sum+v[i]+v[i+1]<=maxim) {
sum+=v[i]+v[i+1];
//fout<<v[i]<<" ";
i+=2;
}
if(i<=n && sum+v[i]<=maxim)
{
sum+=maxim;
i++;
}
//fout<<endl;
drum++;
}
// fout<<"i="<<i<<endl;
if(i==n && sum+v[n]==maxim+1)
{
found=1;
}
if(i-1<n) maxim++;
else found =1;
}
fout<<maxim;
return 0;
}