Cod sursa(job #1378173)

Utilizator iulia.corneaCornea Ana-Maria-Iulia iulia.cornea Data 6 martie 2015 10:51:29
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<fstream>

using namespace std;

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

int v[16001],n;

int f(int x)
{
    int i,aux=x,t=1;
    for(i=1;i<=n;i++)
    {
        if(v[i]<=aux)
        {
            aux=aux-v[i];
        }
        else
        {
            aux=x;
            aux=aux-v[i];
            t++;
        }
    }
    return t;
}
int main()
{
    int i,k,maxim=0,s=0,l,r,sol=0,mid;
    fin>>n>>k;
    for(i=1;i<=n;i++)
        fin>>v[i];
    for(i=1;i<=n;i++)
    {
        if(v[i]>maxim)
            maxim=v[i];
        s+=v[i];
    }
    l=maxim;
    r=s;
    while(l<=r)
    {
        mid=(l+r)/2;
        if(f(mid)<=k)
        {
            sol=mid;
            r=mid-1;
        }
        else
        {
            l=mid+1;
        }
    }
    fout<<sol<<"\n";
    return 0;
}