Cod sursa(job #1515160)

Utilizator daneel95Holteiu Daniel-Ninel daneel95 Data 1 noiembrie 2015 11:09:06
Problema Transport Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>

using namespace std;

ifstream in("transport.in");
ofstream out("transport.out");

int n,a[16001],k;

bool verificare(int k,int s)
{
    int i=0,sum;
    while(k>0 && i<=n)
    {
        sum=0;
        while(sum<s && i<n)
        {
            i++;
            sum+=a[i];
        }
        if(sum>s) i--;
        k--;
    }
    if(i<n) return 0;
        else return 1;
}
int binary_search(int val)
{
    int i,step;
    for(step=1;step<=n;step<<=1);
    for(i=1;step;step>>=1)
        if(i+step<n && a[i+step]<=val) i+=step;
    return i;
}

int main()
{
    int i,max=0;
    in>>n>>k;
    for(i=1;i<=n;i++)
    {
        in>>a[i];
        if(a[i]>max) max=a[i];
    }
    while(verificare(k,max)==0)
    {
        max++;
    }
    out<<max;
    in.close();
    out.close();
    return 0;
}