Cod sursa(job #2631973)

Utilizator Tudor_IIliescu Andrei-Tudor Tudor_I Data 1 iulie 2020 18:44:29
Problema Transport Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k,c,a[16010],maxi,rez;
bool cond(int x)
{   int nr=0;
    for(int i=1;i<=n&&nr<=k;i++)
    {   int s=0;
        while(s+a[i]<=x)
        {   i++;
            s+=a[i];
        }
        nr++;
    }
    if(nr>k) return 0;
    else return 1;
}
int main()
{
    f>>n>>k;
    for(int i=1;i<=n;i++)
    {   f>>a[i];
        if(a[i]>maxi) maxi=a[i];
    }
    int st,m,dr;
    st=maxi;
    dr=16000*n;
    while(st<=dr)
    {   m=(st+dr)/2;
        if(cond(m)) dr=m-1,rez=m;
        else st=m+1;
    }
    g<<rez;
    return 0;
}