Cod sursa(job #2807681)

Utilizator ioana3317ioanapopescu ioana3317 Data 24 noiembrie 2021 09:05:45
Problema Transport Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>

using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int v[16002];
int calculare(int vol, int n)
{
    int i,cnt=0,sum=0;
    for(i=1;i<=n;i++)
    {
        sum=sum+v[i];
        if(sum==vol)
        {
            sum=0;
            cnt++;
        }
        else
            if(sum>vol)
            {
                sum=v[i];
                cnt++;
            }
    }
    if(sum!=0)
        cnt++;
    return cnt;
}
int main()
{
    int n,k,sum=0,st,dr,ras=-1,mij,i;
    in>>n>>k;
    for(i=1;i<=n;i++)
    {
        in>>v[i];
        sum=sum+v[i];
    }
    st=1;
    dr=sum;
    while(st<=dr && ras==-1)
    {
        mij=(st+dr)/2;
        if(calculare(mij,n)==k)
            ras=mij;
        else
            if(calculare(mij,n)<k)
                dr=mij-1;
            else
                st=mij+1;
    }
    out<<ras;
    return 0;
}