Cod sursa(job #3364892)

Utilizator StefanDutuDutu Stefan Alexandru StefanDutu Data 13 septembrie 2026 10:55:30
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int n,v[16001],k;
bool nrTransp(int C)
{
    int nr=1,suma=0,i;
    for(i=1;i<=n;i++)
        if(suma+v[i]<=C)
           suma+=v[i];
        else
        {
           nr++;
           suma=v[i];
        }
    if(nr<=k)
       return true;
    else
       return false;
}
int st,dr,maxi=-1,mij,Total=0;
int main()
{
    int i;
    cin>>n>>k;
    for(i=1;i<=n;i++)
    {
        cin>>v[i];
        Total+=v[i];
        maxi=max(maxi,v[i]);
    }
    st=maxi;
    dr=Total;
    while(st<dr)
    {
        mij=(st+dr)/2;
        if(nrTransp(mij)==true)
           dr=mij;
        else
           st=mij+1;
    }
    cout<<st;
    return 0;
}