Cod sursa(job #2093370)

Utilizator AlexandruabcdeDobleaga Alexandru Alexandruabcde Data 23 decembrie 2017 15:39:33
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

using namespace std;
ifstream f ("transport.in");
ofstream g ("transport.out");
int n,k,a[16005],i,sm=0,z;
long long int step=0;
int capcam (int val)
{
    int j=1,nrt=0,s;
    while(j<=n && a[j]<=val)
    {
        s=0;
        while(s+a[j]<=val && j<=n)
        {
            s=s+a[j];
            j++;
        }
        nrt++;
    }

    if(nrt<=k && j==n+1)
        return 1;
    else
        return 0;
}
int main()
{
    f>>n>>k;
    for (i=1;i<=n;i++)
    {
        f>>a[i];
        sm+=a[i];
    }
    for (step=1;step<sm;step<<=1);
    for (i=0;step;step>>=1)
    {
        z=capcam(i+step);
        if (i+step<sm && z==0)
            i+=step;
    }
    g<<i+1<<'\n';
    return 0;
}