Cod sursa(job #2069227)

Utilizator Andrei.GheorgheAndrei Gheorghe Andrei.Gheorghe Data 18 noiembrie 2017 12:35:43
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream>
#include<math.h>
#include<algorithm>
using namespace std;
int main()
{
    ifstream cin("transport.in");
    ofstream cout("transport.out");
    int n,k,i,a,b,v[16000],s,l=0,nr=0,mij,f=0;
    cin>>n>>k;
    for(i=0;i<n;i++){cin>>v[i];f=f+v[i];}
    s=*max_element(v,v+n);
    mij=(s+f)/2;
    while(s<=f)
    {
        nr=0;
        l=0;
        for(i=0;i<n;i++)
        {
            l=l+v[i];
            if(l>mij)
            {
                l=0;
                nr++;
                i--;
            }
        }
        if(nr<k)
        {
            f=mij;
            mij=(s+f)/2;
        }
        if(nr>k)
        {
            s=mij;
            mij=(s+f)/2;
        }
        if(nr==k)
        {
            cout<<mij+1;
            break;
        }
    }
}