Cod sursa(job #3038735)

Utilizator Bianca2507Negret Bianca Bianca2507 Data 27 martie 2023 18:14:35
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <climits>
#include <algorithm>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int n,maxi,k,st,dr,mid,i,v[16005],capacitate,nr,s;
int main()
{
   cin>>n>>k;maxi=-1;
   for(i=1;i<=n;i++)
   {
       cin>>v[i];
       if(maxi<v[i])
        maxi=v[i];
       s=s+v[i];
   }
   st=maxi;dr=s;
   while(st<=dr)
   {
       mid=(st+dr)/2;
       nr=1;
       s=0;
       for(i=1;i<=n;i++)
       {
           if(s+v[i]<=mid)
            s+=v[i];
           else
           {
               nr++;
               s=v[i];
           }
       }
       if(nr<=k)
       {
           capacitate=mid;
           dr=mid-1;
       }
       else
        st=mid+1;
   }
   cout<<capacitate;
    return 0;
}