Cod sursa(job #1825853)

Utilizator GeoeyMexicanuBadita George GeoeyMexicanu Data 9 decembrie 2016 19:39:34
Problema Transport Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>
#define N 16010
#define INF 1000000000

using namespace std;

ifstream f("transport.in");
ofstream g("transport.out");
long n,k,v[N],i,j,st,sum,dr,max1=-13,mij,rez;
bool trans(long n,long x,long k)
{
    long sum=0,nr=1;
    for(long i=1;i<=n;i++)
    {
        sum=sum+v[i];
        if(sum>=x)
        {
            nr++;
            sum=v[i];
        }
    }
    if(nr<=k)
        return true;
    return false;
}
long bin(long st,long dr,long k,long n)
{
    long mij;
    while(dr-st>1)
    {
        mij=(st+dr)/2;
        bool ok=trans(n,mij,k);
        if(!ok)
            st=mij;
        else
            dr=mij;
    }
    return dr;
}
int main()
{
    f>>n>>k;
    for(i=1;i<=n;i++)
    {
        f>>v[i];
        if(max1<v[i])
        {
            max1=v[i];
        }
        sum=sum+v[i];
    }
    g<<bin(max1-1,INF,k,n);
}