Cod sursa(job #2083479)

Utilizator alex02Grigore Alexandru alex02 Data 7 decembrie 2017 19:18:45
Problema Transport Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#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;
}