Cod sursa(job #2928182)

Utilizator Cornea_AlexandruCornea Alexandru Mihai Cornea_Alexandru Data 22 octombrie 2022 12:47:51
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin ("transporturi.in");
ofstream fout ("transporturi.out");
int v[16001],n,k,mx,s,poz;
int transport(int x,int m)
{
    int p=0,sum=0;
    for (int i=1; i<=m; i++)
    {
        sum=sum+v[i];
        if(sum+v[i+1]>x)
        {
            p++;
            sum=0;
        }
    }
    if (sum>0)
    {
        p++;
    }
    return p;
}
int main()
{
     fin>>n>>k;
     for (int i=1; i<=n; i++)
     {
         fin>>v[i];
         if (v[i]>mx)
            mx=v[i];
         s=s+v[i];
     }

     int st=mx,dr=s,mij,ok=0;
    while (st<=dr)
    {
        mij=(st+dr)/2;
   int g=transport(mij,n);
   if (g<=k)
   {
       poz=mij;
   dr=mij-1;

   }
   else st=mij+1;
    }
    fout<<poz;
    return 0;
}