Cod sursa(job #1497301)

Utilizator ciocan_catalinCiocan Catalin - Iulian ciocan_catalin Data 6 octombrie 2015 17:21:00
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>

using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k,a[16005];

bool Check(int s)
{
    int i,nr,sum;
    nr = 1;
    sum = 0;
    for(i=1;i<=n;i++)
    {
        sum+=a[i];
        if(sum>s)
        {
            sum = a[i];
            nr++;
        }
    }
    if(nr<=k) return true;
    return false;
}



int main()
{
    int i,j,s,st,dr,mij,sol;
    fin>>n>>k;
    s = 1;
    for(i=1;i<=n;i++)
    {
        fin>>a[i];
        s +=a[i];
    }
    sol = s;
    st = 1; dr = s;
    while(st<=dr)
    {
        mij = (st+dr)/2;
        if(Check(mij))
        {
            sol = mij;
            dr = mij-1;
        }
        else st = mij+1;
    }
    fout<<sol<<"\n";
    fout.close();
    return 0;
}