Cod sursa(job #2358631)

Utilizator robertbirsanRobert Birsan robertbirsan Data 28 februarie 2019 10:50:25
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <bits/stdc++.h>
#define MAXIM 16005

using namespace std;

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

long long int n,v[MAXIM],k,m,i,val=1,nr;

bool transport(int x)
{
    long aux=0,nr=0,i;
    for(i=1;i<=n;i++)
    {
        if(v[i]>x)
            return 0;

        if(v[i]>aux)
        {
            nr++;
            aux=x;
        }
        aux-=v[i];
    }
    if(nr<=k)
        return 1;
    else
        return 0;
}


int cautbin()
{
    int mij=0,st=1,dr=MAXIM*MAXIM,minim=-1;
    while(st<=dr)
    {
        mij=(dr-st)/2+st;
        if(transport(mij)!=0)
        {
            minim=mij;
            dr=mij-1;
        }

        else st=mij+1;
    }
    return minim;
}

int main()
{
    f>>n>>k;
    for(i=1;i<n;i++)
        f>>v[i];
    g<<cautbin()+1;
    return 0;
}