Cod sursa(job #1700794)

Utilizator ionut98Bejenariu Ionut Daniel ionut98 Data 11 mai 2016 10:41:41
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,m,v[16005],min1,sum;
bool verif(int x)
{
    int act,ori,i;
    act=0;
    ori=1;
    for(i=1;i<=n;i++)
      if(act+v[i]>x)
      {
          act=v[i];
          ori++;
          if(ori>m)
            return 0;
      }
      else
        act+=v[i];
    return 1;
}
int main()
{
    int i;
    f>>n>>m;
    for(i=1;i<=n;i++)
    {
        f>>v[i];
        min1=max(v[i],min1);
        sum+=v[i];
    }
    int mijl,st,dr, ok=0;
    st=min1;
    dr=sum;
    while(st<=dr)
    {
        mijl=(st+dr)/2;
        if(verif(mijl))
        {
            ok=mijl;
            dr=mijl-1;
        }
        else
          st=mijl+1;
    }
    g<<ok;
    return 0;
}