Pagini recente » Cod sursa (job #3000091) | Cod sursa (job #2163091) | Cod sursa (job #884983) | Cod sursa (job #2275354) | Cod sursa (job #2083479)
#include <iostream>
#include <fstream>
using namespace std;
bool vol_min(int n, int k, int* a, int volCamion)
{
int nrTransporturi=1, suma=0;
for(int i=0; i<n; i++)
{
if(suma+a[i]<=volCamion)
suma+=a[i];
else
{
nrTransporturi++;
if(nrTransporturi>k) return false;
suma=0;
i--;
}
}
return true;
}
int main()
{
ifstream f("transport.in");
ofstream g("transport.out");
int n, k, a[16000], volMinCamion=0, sumaVolSaltele=0;
f>>n>>k;
for(int i=0; i<n; i++)
{
f>>a[i];
if(volMinCamion<a[i])
volMinCamion=a[i];
sumaVolSaltele+=a[i];
}
for(; volMinCamion<sumaVolSaltele; volMinCamion++)
if(vol_min(n,k,a,volMinCamion)) break;
// cout<<"volum minim camion: "<<volMinCamion<<endl;
g<<volMinCamion;
return 0;
}