Cod sursa(job #2038876)

Utilizator stefanradu5Stefan Radu-Ioan stefanradu5 Data 14 octombrie 2017 08:15:35
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
 #include<fstream>
using namespace std;
int v[16001],rez,n,k;

int verif(int m)
{
    int i,s=0,a=k;
    for(i=1;i<=n;i++)
    {
        s+=v[i];
        if(s==m)
        {
            a--;
            s=0;
        }
        else if(s>m)
        {
            a--;
            i--;
            s=0;
        }
        if(a==0 && i==n)return 1;
        else if ( a==0 ) return 0;
    }
    return 1;
}

void bin2()
{
    int poz=0;
    long long pas=(1<<28);
    while(pas>0)
    {
            if(verif(poz+pas))rez=poz+pas;
                else poz+=pas;
        pas>>=1;
    }
}

int main()
{
    int i;
    ifstream fcin("transport.in");
    ofstream fcout("transport.out");
    fcin>>n>>k;
    for(i=1;i<=n;i++)
        fcin>>v[i];
    bin2();
    if(n==0)fcout<<0;
    else
        fcout<<rez;
    return 0;
}