Cod sursa(job #2716109)

Utilizator Ninja951Andrei Vila Ninja951 Data 4 martie 2021 18:42:19
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>

using namespace std;

ifstream in("transport.in");
ofstream out("transport.out");
int k,n,v[16001];
bool f(int x)
{
    int s=0,cnt=1;
    for(int i=1; i<=n; i++)
    {
        if(s+v[i]<=x)
        {
            s=s+v[i];
        }
        else
        {
            cnt++;
            s=v[i];
        }
    }
    if(cnt<=k)
    {
        return 1;
    }
    return 0;
}
int main()
{
    int st,mid,dr,minim;
    in>>n>>k;
    for(int i=1; i<=n; i++)
    {
        in>>v[i];
    }
    st=1;dr=n*16000;
    while(st<=dr)
    {
        mid=(st+dr)/2;
        if(f(mid)==0)
        {
            st=mid+1;
        }
        else
        {
            dr=mid-1;
            minim=mid;
        }
    }
    out<<minim;
    return 0;
}