Cod sursa(job #3244372)

Utilizator UculeleHorie Micule Uculele Data 24 septembrie 2024 16:49:36
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>

using namespace std;
ifstream cin ("transport.in");
ofstream cout ("transport.out");
int n,k,v[16000];
int transport (int vol)
{
    int s=0,t=0,i;
    for (i=0;i<n;i++)
    {
        if (s+v[i]>=vol)
        {
            s=0;
            t++;
        }
        s=s+v[i];
    }
    return t;
}
int main()
{
    int i;
    cin>>n>>k;
    for (i=0;i<n;i++)
    {
        cin>>v[i];
    }
    int st=1,dr=16000*16000,m=(st+dr)/2,poz;
    while (st<=dr)
    {
        m=(st+dr)/2;
        if (transport(m)<=k)
        {
            poz=m;
            dr=m-1;
        }
        else
            st=m+1;
    }
    cout<<poz;
    return 0;
}