Cod sursa(job #1497316)

Utilizator ciocan_catalinCiocan Catalin - Iulian ciocan_catalin Data 6 octombrie 2015 17:33:10
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#define vmax 260000000
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++)
    {
        if(a[i]>s) return false;
        if (sum + a[i] <= s) sum += a[i];
        else
        {
            nr++;
            sum = a[i];
        }
    }
    if(nr<=k) return true;
    return false;
}



int main()
{
    int i,j,s,st,dr,mij,sol;
    fin>>n>>k;
    for(i=1;i<=n;i++)
        fin>>a[i];
    sol = vmax;
    st = 1; dr = vmax;
    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;
}